2022-03-21

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 记录

你可能感兴趣的:(2022-03-21)