free命令详解
原⽂链接:blog.csdn/u011616400/article/details/80198398
1、free命令显⽰结果
1.
$free
记住我
2.
total used free shared buffers cached
3.
Mem: 16464652 16371084 93568 0 305928 14781392
4.
-/+ buffers/cache: 1283764 15180888
5.
Swap: 0 0 0
1
2
3
4
5
2、参数详解
参数释义
total内存总数,物理内存总数
used已经使⽤的内存数
free空闲的内存数
shared多个进程共享的内存总额
buffers Buffer缓存内存数
cached Page缓存内存数
-buffers/cache应⽤使⽤内存数
+buffers/cache应⽤可⽤内存数
Swap交换分区,虚拟内存
3、结果说明
第⼀部分Mem⾏:
total 内存总数: 15.7G
used 已经使⽤的内存数: 15.6G
free 空闲的内存数: 93M
shared 当前已经废弃不⽤,总是0
buffers Buffer 缓存内存数: 298M
cached Page 缓存内存数:14G
对操作系统来讲是Mem的参数,buffers/cached 都是属于被使⽤,所以它认为free只有93M。
我们通过free命令查看机器空闲内存时,会发现free的值很⼩。这主要是因为,在中有这么⼀种思想,内存不⽤⽩不⽤,因此它尽可能的cache和buffer⼀些数据,以⽅便下次使⽤。但实际上这些内存也是可以⽴刻拿来使⽤的。
第⼆部分(-/+ buffers/cache):
(-buffers/cache) used内存数:1.2G (指的第⼀部分Mem⾏中的used – buffers – cached)
(+buffers/cache) free内存数: 14.4G (指的第⼀部分Mem⾏中的free + buffers + cached)
可见-buffers/cache反映的是被程序实实在在吃掉的内存,⽽+buffers/cache反映的是可以挪⽤的内存总数.
对应⽤程序来讲是(-/+ buffers/cach).buffers/cached 是等同可⽤的,因为buffer/cached是为了提⾼程序执⾏的性能,当程序使⽤内存时,buffer/cached会很快地被使⽤。
第三部分Swap交换分区:
⼤家⾃⾏了解。
4、结果说明
所以,弄清楚参数意义,就不会产⽣误解,以为Mem⾏free内存很少,是不是需要升级服务器内存等等。看内存够不够⽤重点是要看(-/+ buffers/cache)的free和used为主。
另外告诉⼤家⼀些常识。Linux为了提⾼磁盘和内存存取效率,Linux做了很多精⼼的设计,除了对dentry进⾏缓存(⽤于VFS,加速⽂件路径名到inode的转换),还采取了两种主要Cache⽅式:Buffer Cache和Page Cache。前者针对磁盘块的读写,后者针对⽂件inode的读写。这些Cache能有效缩短了 I/O系统调⽤(⽐如read,write,getdents)的时间。5、参考资料