日期:2014-05-16  浏览次数:20783 次

linux系统下使用free命令查看内存使用情况

??Linux这款操作系统的内存使用原理是和windows不同的,linux是有多大内存就全部占用掉,而win则是使用多少就占用多少。那么今天就来详细的了解下linux下查看内存使用量的命令free吧。Linux下free命令这个命令虽然简单,但是如果想理解free命令的输出结果还真不容易.至此从操作系统角度和应用程序角度进行分析.

????其实说的简单点就是Linux系统下对内存的调度有缓存机制,如果系统需求内存很大的话,被缓存的内存页是可以回收的.不过一般为了高效,是处于cache状态.

????总之Linux下对内存的调度比较高效.下面是实例分析.

点击在新窗口中浏览此图片

[root@154 network-scripts]# free -m
total used free shared buffers cached
Mem:?????????????? 249?? 243????5???? 0???? 6??????93
-/+ buffers/cache: 142?? 106
Swap:??????????????500????0????500

1、操作系统是看 Mem
这里的free(5)才是真正没有任何数据的(注意,不是系统的可用内存量),不涉及到Linux高效数据存取(Access)中提到的缓存.

2、应用程序看-/+ buffers/cache(这行代表的就是程序真正使用内存量和剩余内存量):
这里的free(106)表示可以被应用程序可支配的剩余内存,也就是系统还有多少内存可以被apache这类程序使用

used(142) 其实就是系统监视器(gnome-system-monitor)中所提到的"用户内存"

3、Mem (free+buffers+cached) = -/+ buffers/cache (free)
这里的buffers和cached是不同方式的缓存.想更多了解,请先熟悉Page Cache、Buffer Cache.