先看一下free命令的输出:

[root@zfcg ~]# free -m
             total       used       free     shared    buffers     cached
Mem:         32101      15882      16219          0        459      13934
-/+ buffers/cache:       1488      30613
Swap:        15999          0      15999

1、free输出的第一行是从操作系统(OS)来看的

计算机上一共有:

  • 32101M的物理内存;

  • 在这些物理内存中有15882M被使用了;对于OS来说,buffers和cached 都是属于已使用的,

  • 还用16219M是可用的;


2、free输出的第二行-/+ buffers/cache,是从应用程序角度来看

  • 应用程序认为系统一共使用了1488M=15882-459M(buffers)-13934M(cached)

  • 还有30613M是可用的,=16219+459+13934


对于应用程序来说,buffers/cached 是等于可用的,因为buffer/cached是为了提高文件读取的性能,当应用程序需要用到内存的时候,buffer/cached会很快地被回收。

所以从应用程序的角度来说,可用内存=系统free memory+buffers+cached


3、从上可知,当前系统的内存使用率是:(1-30613M/32101)×100%=4.64%


4、buffer是用于存放要写入磁盘的数据的,而cache是存放从磁盘中读出的数据。