Linux内存工作原理之Buffer/Cache定义
此文章部分内容由(小红书 www.xiaohongshutuiguang.cn)转载提供 欢迎留言反馈
使用man free查看
buffers Memory used by kernel buffers (Buffers in/proc/meminfo)
cache Memory used by the page cache and slabs (Cached and SReclaimable in/proc/meminfo)
buff/cache Sum of buffers and cache
Buffers 是内核缓冲区用到的内存,对应的是 /proc/meminfo 中的Buffers值
Cache 是内核页缓存和 Slab 用到的内存,对应的是 /proc/meminfo 中的Cached 与 SReclaimable之和
使用man proc 查看
Buffers %lu
Relatively temporary storage forraw disk blocks that shouldn't get tremendously large (20MB or so).Cached %lu
In-memory cacheforfiles readfromthe disk (the page cache). Doesn't include SwapCached.SReclaimable %lu (since Linux2.6.19)
Part of Slab, that might be reclaimed, such as caches.
SUnreclaim %lu (since Linux2.6.19)
Part of Slab, that cannot be reclaimed on memory pressure.
Buffers 是对原始磁盘块的临时存储,也就是用来缓存磁盘的数据,通常不会特别大(20MB左右)。这样,内核就可以把分散的写集中起来,统一优化磁盘的写入,比如可以把多次小的写合并成单次大的写等。
Cached 是从磁盘读取文件的页缓存,也就是用来缓存从文件读取的数据。这样,下次访问这些文件数据时,就可以直接从内存中快速获取,而不需要再次访问缓慢的磁盘。
SReclaimable 是Slab 的一部分。Slab 包括两个部分,其中的可回收部分用 SReclaimable 记录;不可回收部分用 SUnreclaim 记录