Linux内存篇2

理解内存中的Buffer和Cache

1.proc文件系统

/proc是Linux内核提供的一种特殊文件系统,是用户跟内核交互的接口。用户可以从/proc中查询内核的运行状态和配置选项,查询进程的运行状态、统计数据等。还可以通过/proc来修改内核配置。

2. Buffer、Cached、SReclaimable

Buffers %lu Relatively temporary storage for raw disk blocks that shouldn't get tremendously large (20MB or so).
Cached %lu In-memory cache for files read from the disk (the page cache). Doesn't include SwapCached....
SReclaimable %lu (since Linux 2.6.19) Part of Slab, that might be reclaimed, such as caches. SUnreclaim %lu (since Linux 2.6.19) Part of Slab, that cannot be reclaimed on memory pressure.
  • Buffer是对原始磁盘块的临时存储,也就是用来缓存磁盘的数据,通常不会特别大(20MB左右)。

    优点:内核可以把分散的写入集中起来,统一优化磁盘的写入,比如可以把多次小的写合并成单次大的写等等。

  • Cached 是从磁盘读取文件的页缓存,也就是用来缓存从文件读取的数据。

    优点:访问文件数据时,直接从内存读取,而不需要再次访问磁盘。

  • SReclaimable Slab 的一部分。Slab 包括两部分,其中的可回收部分,用 SReclaimable 记录;而不可回收部分,用 SUnreclaim 记录。

Tips:

Buffer 是对磁盘数据的缓存,而 Cache是文件数据的缓存,它们既会用在读请求中,也会用在写请求中。

关于Slab:

https://blog.csdn.net/liuhangtiant/article/details/81259293

https://blog.csdn.net/rockrockwu/article/details/79976833

posted @ 2020-06-29 00:03  tulipgirl  阅读(76)  评论(0编辑  收藏  举报