正确查看 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 的值。
共有 0 条评论