Linux 内存查看

来源:互联网 发布:淘宝男鞋店推荐 编辑:程序博客网 时间:2024/06/04 00:28

查看内存使用情况,可以使用命令 free -m


其结果大致如下:

                   total       used         free     shared    buffers     cached

Mem:         32108      30681       1426          0        123      21165

-/+ buffers/cache:       9392      22715

Swap:        34287       1262      33025



在第一部分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://blog.csdn.net/shanliangliuxing/article/details/8904771




top命令中的交互命令中:

1、输入shift+p按CPU占用率排序2、输入1可以看到CPU各个核的CPU负载3、shift+m按内存占用率排序,shift+t按CPU用时排序,shift+n按PID排序  


什么是Cache Memory(缓存内存):
 
当你读写文件的时候,Linux内核为了提高读写效率与速度,会将文件在内存中进行缓存,这部分内存就是Cache Memory(缓存内存)。即使你的程序运行结束后,Cache Memory也不会自动释放。这就会导致你在Linux系统中程序频繁读写文件后,你会发现可用物理内存会很少。
其实这缓存内存(Cache Memory)在你需要使用内存的时候会自动释放,所以你不必担心没有内存可用。如果你希望手动去释放Cache Memory(缓存内存)的话也是有办法的。
释放Cache Memory(缓存内存):
用下面的命令可以释放Cache Memory:
[rootmin@localhost~]#echo 3 > /proc/sys/vm/drop_caches
Linux中如何释放cache内存
因为LINUX的内核机制,一般情况下不需要特意去释放已经使用的cache。这些cache起来的内容可以增加文件以及的读写速度。
先说下free命令怎么看内存
total——总物理内存  www.2cto.com  
 used——已使用内存,一般情况这个值会比较大,因为这个值包括了cache+应用程序使用的内存
 free——完全未被使用的内存
 shared——应用程序共享内存
 buffers——缓存,主要用于目录方面,inode值等(ls大目录可看到这个值增加)
 cached——缓存,用于已打开的文件 
注意: 
total=used+free 
used=buffers+cached (maybe add shared also) 
第二行描述应用程序的内存使用:
前个值表示-buffers/cache——应用程序使用的内存大小,used减去缓存值
后个值表示+buffers/cache——所有可供应用程序使用的内存大小,free加上缓存值
注意
-buffers/cache=used-buffers-cached
+buffers/cache=free+buffers+cached
第三行表示swap的使用:  www.2cto.com  
used——已使用
free——未使用
cache释放:
1.   To free pagecache:
[rootmin@localhost~]#echo 1 > /proc/sys/vm/drop_caches
2.   To free dentries and inodes:
[rootmin@localhost~]#echo 2 > /proc/sys/vm/drop_caches
3.   To free pagecache, dentries and inodes:
[rootmin@localhost~]#echo 3 > /proc/sys/vm/drop_caches
说明,释放前最好sync一下,防止丢数据
http://blog.csdn.net/fox_hacker/article/details/41351687