That's how I check true free memory available:
root@joe-pc:~# free -m
total used free shared buffers cached
Mem: 32057 30347 1710 0 1312 21568
-/+ buffers/cache: 7466 24591
Swap: 0 0 0
root@joe-pc:~# sync; echo 3 > /proc/sys/vm/drop_caches
root@joe-pc:~# free -m
total used free shared buffers cached
Mem: 32057 5628 26429 0 4 891
-/+ buffers/cache: 4732 27325
Swap: 0 0 0
root@joe-pc:~#