您正在寻找的是“免费”的输出:
$free
total used free shared buffers cached
Mem: 775556 759456 16100 0 22132 592484
-/+ buffers/cache: 144840 630716
Swap: 500344 21972 478372
这是一个旅游:
这是一个带有768MB物理RAM和500344KB交换分区的盒子.
759456KB是“使用”(第二列,顶行).在这个“二手”存储器中,23132KB是缓冲区(第5列,顶行),592484KB(第六列,顶行)是缓存,剩下144840KB(第2列,第2行)的活动进程正在使用的物理内存.
当您考虑缓冲区和缓存使用的内存可用于进程时,可以释放630716KB(第3列,第2行)物理内存.
正如我所说,交换分区是500344KB(第1列,底行).交换文件的21972KB(第2列,底行)正在使用中,留下478372KB(第3列,底行)空闲.
因此,你对%free memory的定义取决于你是否计算缓冲区和缓存,以及你是否计算交换.
这应该足以让你继续计算你认为合适的百分比.
这是top和free的输出:
$top -n1 | grep "used," ; free
Mem: 775556k total, 751472k used, 24084k free, 20776k buffers
Swap: 500344k total, 21972k used, 478372k free, 586648k cached
total used free shared buffers cached
Mem: 775556 751344 24212 0 20776 586648
-/+ buffers/cache: 143920 631636
Swap: 500344 21972 478372
你可以看到top和free是如何达成一致的(虽然有点不同 – 这是一个多用户机器,顶级和免费程序的内存使用情况也反映在那里).
当你调用vmstate时添加一个“-s”,你会看到很多相同的输出,只是以不同的形式:
$vmstat -s ; free
775556 total memory
759920 used memory
674680 active memory
18440 inactive memory
15636 free memory
21892 buffer memory
594372 swap cache
500344 total swap
21972 used swap
478372 free swap
... output truncated ...
total used free shared buffers cached
Mem: 775556 759920 15636 0 21892 594372
-/+ buffers/cache: 143656 631900
Swap: 500344 21972 478372
你可以看到vmstat显示的所有数字都是免费的.