free命令由procps.*.rpm提供(在Redhat系列的OS上)。free命令的所有输出值都是从/proc/meminfo中读出的
#free -m
total used free shared buffers cached
Mem: 490 484 6 0 4 59
-/+ buffers/cache: 420 70
Swap: 1023 231 792
第一行的输出时从操作系统(OS)来看的:
total used free 不用说了大家一看就明白 total = used + free
shared 是指被几个进程共享的内存
buffers 是指被OS buffer住的内存
cached 是指被OS cache住的内存
A buffer is something that has yet to be "written" to disk 。 buffer是用于存放要输出到disk(块设备)的数据的
A cache is something that has been "read" from the disk and stored for later use. cache是存放从disk上读出的数据
第二行是从一个应用程序的角度看系统内存的使用情况:
-buffers/cache,表示一个应用程序认为系统被用掉多少内存 (used – buffers – cached)
+buffers/cache,表示一个应用程序认为系统还有多少内存(free + buffers + cached)
所以,以应用来看看,以(-/+ buffers/cache)的free和used为主.所以我们主要看这个就好了
记住内存是拿来用的,不是拿来看的.不象windows,无论你的真实物理内存有多少,他都要拿硬盘交换文件来读.这也就是windows为什么常常提示虚拟空间不足的原因.你们想想,多无聊,在内存还有大部分的时候,拿出一部分硬盘空间来充当内存.硬盘怎么会快过内存.
所以我们看linux,只要不用swap的交换空间,就不用担心自己的内存太少.如果常常swap用很多,可能你就要考虑加物理内存了.这也是linux看内存是否够用的标准哦
综合以下博客:
http://www.cnblogs.com/coldplayerest/archive/2010/02/20/1669949.html