怎样正确查看Linux的内存占用情况

很多Linux用户在查看Linux操作系统的内存使用情况方面有误解,我们经常给客户解释怎样看一个Linux系统的内存使用情况,总结如下:

看内存最方便的命令是free -m,在我的Linux系统上运行,结果如下:

[root@host ~]# free -m
             total       used       free     shared    buffers     cached
Mem:          1024       1005         19          0          9        782
-/+ buffers/cache:        212        811
Swap:          996          0        995
[root@host ~]#

明显能看出,这个Linux系统一共有内存1024M,没错!

但当前Linux 系统已经占用的内存有多少呢?大多数用户的答案是1005M,其实不然。当前VPS占用的内存应该是212M,也就是1005下面那个数字:212,代表已经占用的内存。后面的那个811,代表当前Linux系统的可用内存。"-/+ buffers/cache:"开头的这行才是实际的占用内存和可用内存。

为什么会这样?这是由Linux Kernel的内存管理方式决定的,buffers,cached可以看作是被程序或者内核用过的内存,这些内存曾经被使用过,但现在已经被释放了,释放之后Linux Kernel把他们当作buffers或cached ,这样下次有程序申请内存的时候,内核可以快速响应。所以buffers和cached部分的内存应该看成是可用内存。

所以,看内存使用情况,应该看"-/+ buffers/cache:"开头的这一行,如果这一行最后的数字接近0,那么说明Linux系统的内存快用完了,这时候Linux系统反应就比较慢。如果这个数字还比较大,那么Linux系统还有较多内存可用,系统不应该慢。

发表评论