日期:2014-05-16  浏览次数:20727 次

Linux--内存监控free&top

?

# free命令 : 监控内存使用情况

# free -b -s5 命令: 将会在终端窗口中连续不断地报告内存的使用情况,每5秒钟更新一次。

?

[root@linuxeye ~]# free 
           total       used       free        shared     buffers      cached 
Mem:       3894036    3473544     420492          0      72972        1332348 
-/+ buffers/cache:    2068224     1825812 
Swap:      4095992    906036      3189956 

?

?

每个选项的含义:

第一行:

total:物理内存的总大小

used:已经使用的物理内存大小

free:空闲的物理内存大小

shared:多个进程共享的内存大小

buffers/cached:磁盘缓存的大小

?

第二行Mem:代表物理内存使用情况

第三行(-/+ buffers/cached):代表磁盘缓存使用状态

第四行:Swap表示交换空间内存使用状态

?

free命令输出的内存状态,可以通过两个角度来查看:一个是从内核的角度来看,一个是从应用层的角度来看的。

从内核的角度来查看内存的状态

就是内核目前可以直接分配到,不需要额外的操作,即为上面free命令输出中第二行Mem项的值,可以看出,此系统物理内存有3894036K,空闲的内存只有420492K,也就是40M多一点,我们来做一个这样的计算:

3894036 – 3473544 = 420492

其实就是总的物理内存减去已经使用的物理内存得到的就是空闲的物理内存大小,注意这里的可用内存值420492并不包含处于buffers和cached状态的内存大小。

如果你认为这个系统空闲内存太小,那你就错了,实际上,内核完全控制着内存的使用情况,Linux会在需要内存的时候,或在系统运行逐步推进时,将buffers和cached状态的内存变为free状态的内存,以供系统使用。