我如何描述或解释输出中的“缓冲区” free?
$ free -h
total used free shared buff/cache available
Mem: 501M 146M 19M 9.7M 335M 331M
Swap: 1.0G 85M 938M
$ free -w -h
total used free shared buffers cache available
Mem: 501M 146M 19M 9.7M 155M 180M 331M
Swap: 1.0G 85M 938M
Run Code Online (Sandbox Code Playgroud)
我对这个系统没有任何(已知的)问题。我只是惊讶和好奇地看到“缓冲区”几乎和“缓存”一样高(155M vs 180M)。我认为“缓存”代表文件内容的页面缓存,并且往往是“缓存/缓冲区”中最重要的部分。我不确定什么是“缓冲区”。
例如,我将其与具有更多 RAM 的笔记本电脑进行了比较。在我的笔记本电脑上,“缓冲区”数字比“缓存”小一个数量级(200M 与 4G)。如果我了解什么是“缓冲区”,那么我就可以开始研究为什么缓冲区在较小的系统上增长到如此大的比例。
来自man proc(我忽略了“大”这个滑稽过时的定义):
缓冲区 %lu
原始磁盘块的相对临时存储,不应变得非常大(20MB 左右)。
缓存 %lu
从磁盘读取的文件的内存缓存(页面缓存)。不包括 SwapCached。
$ free -V
free from procps-ng 3.3.12
$ uname -r # the Linux kernel …Run Code Online (Sandbox Code Playgroud)