那么,应用程序和linux会怎样看待buffers/cache呢?如下图:
在旧版linux中,free命令的结果把buffers/cache归纳到used中。可见,这是站在linux视角的(如下图片是另外一台服务器):
而在新版linux中,free命令的结果没有把buffers/cache归纳到used中。可见,这是站在应用程序角度的,如下:
ubuntu@VM-0-15-ubuntu:~$ free -wh
total used free shared buffers cache available
Mem: 864M 403M 79M 20M 60M 321M 253M
Swap: 0B 0B 0B
ubuntu@VM-0-15-ubuntu:~$
所以,在新版linux free命令的结果中,有如下关系式:
total = used + free + buffers + cache
站在应用程序的角度,可用内存为:free加buffers/cache之和。然而,实际上,只有一部分buffers/cache能被应用程序使用, 所以一般会有:
available < free + buffers + cache