一直对free命令显示的内存不是十分清楚,只是知道Linux会缓存部分内存,如何通过free反应剩余内存一直比较疑惑。
[root@redhat5 ~]# free
total used free shared buffers cached
Mem: 779264 670100 109164 0 158624 327892
-/+ buffers/cache: 183584 595680
Swap: 1343480 0 1343480
只分析物理内存,swap不做说明
buffers/cache的使用量为183584bytes,是通过下面方法算出来的
buffers/cache free = total-free-buffers-cached
mem used包含buffers和cached
mem total = buffers/cache used+buffers/cache free
Free(-/+ buffers/cache行)= Free(Mem)+buffers(Mem)+Cached(Mem);
所以我认为查看物理内存的真实使用情况应该看
-/+ buffers/cache: 183584 595680
总结:
物理内存使用量为buffers/cache used 183584
物理内存剩余量为buffers/cache free 595680
其他补充:
buffers:系统分配但未被使用的buffers 数量
cached:系统分配但未被使用的cache 数量
参考:
http://zhiwenweb.cn/jszx/os/linux/201110/30259.html
http://blog.csdn.net/turkeyzhou/article/details/6426738
在Free命令中显示的buffer和cache,它们都是占用内存:
buffer : 作为buffer cache的内存,是块设备的读写缓冲区,更靠近存储设备,或者直接就是disk的缓冲区。
cache: 作为page cache的内存, 文件系统的cache,是memory的缓冲区
如果cache 的值很大,说明cache住的文件数很多。如果频繁访问到的文件都能被cache住,那么磁盘的读IO 必会非常小[@more@]
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/633084/viewspace-1057429/
,如需转载,请注明出处,否则将追究法律责任。