-bash-3.00$ free -m
total used free
shared buffers cached
Mem: 503 491 12 0 18 277
-/+
buffers/cache: 196 307
Swap: 1019 18 1000
简单的解释:
Mem:这一列,total不用多说,used可以理解为从操作系统的角度看来使用的内存,free为从操作系统看来剩余的内存,buffers+cache为被操作系统用作缓存的内存。因此,这一行的used和free对于对于系统可用内存来说不具有实际意义
-/+ buffers/cache:这一列的含义,used代表从应用程序的角度来看,系统已经使用的内存,应该是上一行的used - buffers/cache,而free代表从应用程序的角度来看,系统可用内存,应该是上一行的free + buffers/cache,也就是这两列的计算一个是需要-,一个需要+,因此,如果要确定系统的内存是否够用,需要看这一行才有实际意义。
Swap就不用多说了,比较简单。
可以手动清除系统的缓存,如下:
-bash-3.00$ free -m
total used free
shared buffers cached
Mem: 503 491 12 0 18 277
-/+
buffers/cache: 196 307
Swap: 1019 18 1000
[root@localhost ~]#
echo 3 >/proc/sys/vm/drop_caches
[root@localhost ~]#
free -m
total used free
shared buffers cached
Mem: 503 335 167 0 0 150
-/+
buffers/cache: 184 318
Swap: 1019 18 1000
可见通过上述命令,系统的缓存得以释放,然后再读写一个文件后,查看内存使用情况:
[root@localhost ~]#
cp /mnt/hgfs/oracle_soft/p6880880_102000_LINUX.zip /home
[root@localhost ~]#
free -m
total used free
shared buffers cached
Mem: 503 406 97 0 2 220
-/+
buffers/cache: 183 320
Swap: 1019 18 1000
可以看出,经过刚才的IO操作,导致系统的缓存使用增加。