技术开发 频道

运维新手必读:理解Linux内存管理机制

  二 内存的监控

  作为一名Linux系统管理员,监控内存的使用状态是非常重要的,通过监控有助于了解内存的使用状态,比如内存占用是否正常,内存是否紧缺等等,监控内存最常使用的命令有free、top等,下面是某个系统free的输出:

[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状态的内存,以供系统使用。

0
相关文章