linux 内存查看,free 命令详解

回复 收藏
linux系统下,查看内存使用情况的命令为 free

# free
             total       used       free     shared    buffers     cached
Mem:       3979576    3952704      26872          0     341764    2886160
-/+ buffers/cache:     724780    3254796
Swap:      1951888        164    1951724

# free -m
             total       used       free     shared    buffers     cached
Mem:          3886       3857         28          0        333       2816
-/+ buffers/cache:        707       3178
Swap:         1906          0       1905

关系:total = used+ free

第二部分(-/+ buffers/cache):
(-buffers/cache) used内存数: (指的第一部分Mem行中的used – buffers – cached)
(+buffers/cache) free内存数:  (指的第一部分Mem行中的free + buffers + cached)

总结一下,系统初始化时,就已经分配出很大一部分内存给缓存,这部分缓存用来随时提供给程序使用,如果程序不用,那这部分内存就空闲,从上面例子分析,实际上系统分配了3857M (707M + 3178M=第一行的used) 给了缓存,而程序只使用了707M。通常我们概念上的内存使用了多少,实际上就是这个707M。而真正剩余内存为3178M= 28M+333M+2816M

所以,以应用来看看,以(-/+ buffers/cache)的free和used为主.所以我们看这个就好了.另外告诉大家一些常识.Linux为了提高磁盘和内存存取效率, Linux做了很多精心的设计, 除了对dentry进行缓存(用于VFS,加速文件路径名到inode的转换), 还采取了两种主要Cache方式:Buffer Cache和Page Cache。前者针对磁盘块的读写,后者针对文件inode的读写。这些Cache能有效缩短了 I/O系统调用(比如read,write,getdents)的时间。

记住内存是拿来用的,不是拿来看的.不象windows,无论你的真实物理内存有多少,他都要拿硬盘交换文件来读.这也就是windows为什么常常提示虚拟空间不足的原因.你们想想,多无聊,在内存还有大部分的时候,拿出一部分硬盘空间来充当内存.硬盘怎么会快过内存.所以我们看linux,只要不用swap的交换空间,就不用担心自己的内存太少.如果常常swap用很多,可能你就要考虑加物理内存了.这也是linux看内存是否够用的标准哦.
2011-03-03 11:28 举报
已邀请:

回复帖子,请先登录注册

退出全屏模式 全屏模式 回复
评分
可选评分理由: