Linux查看内存_free


<pre class="lang:js decode:true">#free --help
-b:以Byte为单位显示内存使用情况;
-k:以KB为单位显示内存使用情况;
-m:以MB为单位显示内存使用情况;
-o:不显示缓冲区调节列;
-s&lt;间隔秒数&gt;:持续观察内存使用状况;
-t:显示内存总和列;
-V:显示版本信息。</pre>
查看内存使用情况,可以使用命令 free -m 其结果大致如下:
<pre class="lang:js decode:true ">           total       used         free     shared    buffers     cached

Mem:         32108      30681       1426          0        123      21165

-/+ buffers/cache:       9392      22715

Swap:        34287       1262      33025</pre>
在第一部分Mem 行中有如下参数:

* total: 内存总数,即32108 MB

* used: 已经使用的内存数,即 30681 MB

* free: 空闲的内存数:即 1426MB

* shared:当前已废弃不用,总是 0

* buffers Buffer: 缓存内存数,即 123 MB

* cached Page: 缓存内存数,即 421MB

其中,内存总数与已经使用内存数和空闲内存数的关系是:

total (32108) = used (30681) + free (1426)

在第二部分内容(-/+ buffers/cache)中个参数如下所示:

(-buffers/cache): 真正使用的内存数,即9392M,他指的是第一部分的 used - buffers - cached

(+buffers/cache): 可用的内存数,即22715M,他指的是第一部分的 free + buffers + cached

其含义可以理解为:-buffers/cached 反映的是被程序实实在在用掉的内存,而 +buffers/cached反映的是可以被使用(或者说挪用)的内存总数。

第三部分指交换分区。(书上说“大家都明白,这里就不再讲了”,可是我还不清楚,一会儿再查吧)

对操作系统来讲,used 和 free都是Mem的参数,所以 buffers/cached这两项对于操作系统来讲都是已经被使用的内存,所以呢 free的就比较少;

而对于应用程序来说呢,buffers/cached等同于可用的内存,因为buffers/cached可提高程序执行的性能,当程序使用内存时,buffers/cached很快就会被使用。

所以从应用程序的角度来看,应以(-/+ buffers/cached)的free 和 used为主,即我们主要与他相关的free和used就可以了。

我们在观察Linux的内存使用情况时,只要没发现用swap的交换空间,就不必担心自己的内存太少。

如果常常看到swap用了很多,那么你就要考虑加物理内存了。这也是在Linux服务器上看内存是否够用的标准。

转自:http://birdinroom.blog.51cto.com/7740375/1600687
-------------本文结束感谢您的阅读-------------