【每日一个Linux命令】free

来源:互联网 发布:淘宝灵符小镇岑一道长 编辑:程序博客网 时间:2024/04/30 07:45

查看linux系统内存使用情况

free -m  #以M为单位来显示内存数值,缺省时free的单位为KB

这里写图片描述

姑且我们把上图看成一个数组(Free Output,以下简称FO):
首先,第1行为列名,total-物理内存总量,used-已经使用掉的内存,free-剩余可用内存,shared-进程共享的内存占用(其值总是0),buffers-用于存放要输出到disk(块设备)的数据的占用,cache是存放从disk上读出的数据。这二者是为了提高IO性能的,并由OS管理。

其次,第2行:
FO[2][1] = FO[2][2] + FO[2][3] 即第2行1列的total值=第2行2列的used值+第2行3列的free值
FO[2][5]表示被OS buffer住的内存。FO[2][6]表示被OS cache的内存。

为了提高IO read的性能,总是要多cache一些数据,这也就是为什么FO[2][6](cached memory)比较大,而FO[2][3]比较小的原因。

对于FO[3][2],即-buffers/cache,表示一个应用程序认为系统被用掉多少内存;
FO[3][2] = FO[2][2] - FO[2][5] - FO[2][6]

对于FO[3][3],即+buffers/cache,表示一个应用程序认为系统还有多少内存;
FO[3][3] = FO[2][3] + FO[2][5] + FO[2][6]

因为被系统cache和buffer占用的内存可以被快速回收,所以通常FO[3][3]比FO[2][3]会大很多。

最后一行为交换分区空间的大小,linux只要不用swap的交换空间,就不用担心自己的内存太少。
如果常常swap用很多,可能你就要考虑加物理内存了。这也是linux看内存是否够用的标准。

参考:http://www.cnblogs.com/coldplayerest/archive/2010/02/20/1669949.html