Linux之正确解读free-m命令
如下显⽰free是显⽰的当前内存的使⽤,-m的意思是M字节来显⽰内容.我们来⼀起看看.
$free-m
totaludfreesharedbufferscached
Mem:1421
-/+buffers/cache:286715
Swap:115301153
第⼀部分Mem⾏:
total内存总数:1002M
ud已经使⽤的内存数:769M
free空闲的内存数:232M
shared当前已经废弃不⽤,总是0
buffersBuffer缓存内存数:62M
cachedPage缓存内存数:421M
关系:total(1002M)=ud(769M)+free(232M)
第⼆部分(-/+buffers/cache):
(-buffers/cache)ud内存数:286M(指的第⼀部分Mem⾏中的ud–buffers–cached)
(+buffers/cache)free内存数:715M(指的第⼀部分Mem⾏中的free+buffers+cached)
可见-buffers/cache反映的是被程序实实在在吃掉的内存,⽽+buffers/cache反映的是可以挪⽤的内存总数.
第三部分是指交换分区,我想不讲⼤家都明⽩.
⼤家看了上⾯,还是很晕.第⼀部分(Mem)与第⼆部分(-/+buffers/cache)的结果中有关ud和free为什么这么奇怪.
其实我们可以从⼆个⽅⾯来解释.
对操作系统来讲是Mem的参数.buffers/cached都是属于被使⽤,所以它认为free只有232.
对应⽤程序来讲是(-/+buffers/cach).buffers/cached是等同可⽤的,因为buffer/cached是为了提⾼程序执⾏的性能,当程序使⽤内存
时,buffer/cached会很快地被使⽤.
所以,以应⽤来看看,以(-/+buffers/cache)的free和ud为主.所以我们看这个就好了.另外告诉⼤家⼀些常识.Linux为了提⾼磁盘和内存存
取效率,Linux做了很多精⼼的设计,除了对dentry进⾏缓存(⽤于VFS,加速⽂件路径名到inode的转换),还采取了两种主要Cache⽅式:
BufferCache和PageCache.前者针对磁盘块的读写,后者针对⽂件inode的读写.这些Cache能有效缩短了I/O系统调⽤(⽐如
read,write,getdents)的时间.
记住内存是拿来⽤的,不是拿来看的.不象windows,⽆论你的真实物理内存有多少,他都要拿硬盘交换⽂件来读.这也就是windows为什么常常
提⽰虚拟空间不⾜的原因.你们想想,多⽆聊,在内存还有⼤部分的时候,拿出⼀部分硬盘空间来充当内存.硬盘怎么会快过内存.所以我们看linux,
只要不⽤swap的交换空间,就不⽤担⼼⾃⼰的内存太少.如果常常swap⽤很多,可能你就要考虑加物理内存了.这也是linux看内存是否够⽤的
标准哦.
本文发布于:2022-12-02 15:02:55,感谢您对本站的认可!
本文链接:http://www.wtabcd.cn/fanwen/fan/88/38497.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
留言与评论(共有 0 条评论) |