Linux的内存有一个“系统分配,未使用”的概念,top 看出来的内存是系统分配的值,并非真正的使用值。如果你要确定系统到底占用了多少内存,要通过 free 命令可以看内存的详细情况
# free -m
total used free shared buffers cached
Mem: 1997 1972 24 0 221 1309
-/+ buffers/cache: 441 1555
Swap: 1911 28 1883
第一行的,total:内存总数 1997M;used:使用1972M(这个是实际分配,并非实际使用) 空闲24M(是未分配,并非未使用) buffers:221M(已分配,未使用,可被回收) cached:1309M(已分配,未使用,可被回收)
第二行的,used:441M(实际使用) free:1555M(实际空闲)
也就是说有这么几个等式
第一行的total = 第一行used + 第一行free
第一行的total = 第二行used + 第二行的free
第二行的free = 第一行buffers + 第一行cached