正确查看 Linux VPS 的内存使用情况

看内存最方便的命令是free -m,结果如下:

[root@centos ~]# free -m total used free shared buffers cachedMem: 128 93 34 0 7 37
-/+ buffers/cache: 48 79
Swap: 255 83 172
[root@centos ~]#

明显能够看出这个VPS上的内存共有128MB,没错!

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

 

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

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

free -m 查看linux内存使用情况详解:

-m 参数就是用 M显示内容使用情况。这时回显会出现几个结果。

Men 是 内存的使用情况总览表。

totel:机器总的物理内存 单位为:M

used:用掉的内存。这里是从系统的层面看到的。

free:空闲的物理内存。这个也是从系统的层面看到的。

 

物理内存=系统看到的用掉的内存+系统看到空闲的内存。

我们平时看内存的使用也就看这些。

 

shared:多个进程共享的内存总和,当前废弃不用。

buffers:缓存内存数。

cached:  缓存内存数。

 

程序预留的内存=buffers+cached   从程序的角度上看到的内存占用。

内存使用上来说,linux 系统会把物理内存占用一部分,也就是used的大小,然后在这里内存里面分一部分来供所有的程序实际使用。就如同我买个5亩地,我圈起来,我声明

我圈到院子里的都是我的了,别管我咋使用了,然后我拿出1亩地来盖房子。盖房子的这些地就是系统程序实际使用的,就是后来所说的:- buffers/cache,然后系统还会预留

出来一部分在房子旁边当菜园,杂物室之类的,buffers和cached就是这些出了房子之外的菜园所占用地了。从外界看来,我占用的就是5亩地。但实际用到的才1亩地的

住房+配房的面积。

 

所以得出来:我实际占用的地=我盖主房的地方(- buffers/cache)= 院子里的地(used)-菜园占地 (buffers+cached)

 

-/+ buffers/cache:可以分为两部分 + buffers/cache;- buffers/cache。这两部分的关系是:

总的物理内存=|+ buffers/cache|+|- buffers/cache|;总的物理内存=两个buffers/cache的物理值相加的和。

这个是从程序的角度上来看的。

- buffers/cache:程序角度上看已经使用的内存数,这才是程序实实在在用掉的内存数。

+ buffers/cache:程序角度上看未使用、可用的内存数。

 

实际上来说,程序占用的真正内存就是:- buffers/cache 的数值。

所以看系统,真正已经用的内存数:used-(buffers+cached)的值。

真正未用到的内存数:free+buffers+cached  的值。

版权声明:
作者:softwolf
链接:http://366tian.org/?p=748
来源:中天在线 366tian.org
文章版权归作者所有,未经允许请勿转载。

THE END
分享
二维码
< <上一篇
下一篇>>