Linux命令free里buffers/cache的简单理解
今天有朋友提起Linux下free命令里buffer和cache的区别,刚好,也记录一下
先看一下free命令的输出<我这里是gentoo linux>:
total used free shared buffers cached
Mem: 2586752 2098752 488000 0 160032 890292
-/+ buffers/cache: 1048428 1538324
Swap: 1060248 0 1060248
我们先看一下第一/二行各字段表示的意思:
total: 内存总数2586752
used: 已经使用的内存2098752
free: 空闲内存数488000
shared: 当前废弃不用内存,0
buffers: 缓冲内存数160032
cached: 缓存数890292
其中total = used + free
那么,buffer和cache的区别是什么呢?用简单两句话来说:
buffer is for writting
cache is for reading
下面这两句是我从网上找到的,应该不难理解
Buffers
Are used by programs with active I/O operations, i.e. data waiting to be
written to diskCache
Is the result of completed I/O operations, i.e. buffers that have been
flushed or data read from disk to satisfy a request.
接着我们再看第三行的
-/+ buffers/cache: 1048428 1538324
这个-/+分别是什么意思呢?先看一下这个公式:
- buffers/cache = used – buffers – cached = 1048428
+ buffers/cache = free + buffers + cached = 1538324
这样就好理解了:
-buffers/cache表示的是实际上被程序上真正吃掉的内存
+buffers/cache表示的是实际还可以挪用的内存
最后一行是swap的信息,略

Leave a Reply