Linux - free中cached和buffers
用户空间在向内核发起内存申请时,会根据当前请求页面是否在内存缓存当中进行相应的策略调整.内核在内存当中会开辟一块缓冲区,用于提升读取页面的效率,否则就要进行相应的磁盘I/O读写. cached和buffers正是缓冲区中对应的两个不同区域,从字面上理解,感觉相差不大,以下说明下cached和buffers的意义.
首先 通过 man free进行查看
buffers
Memory used by kernel buffers (Buffers in /proc/meminfo)
cached
Memory used by the page cache (calculated as Cached - Shmem in /proc/meminfo - the Cached value is actually the sum of page cache and tmpfs
buffers:主要用于I/O写,将应用程序的多次零碎写事件,集中到一个缓冲区(即buffers),然后再一次性写入磁盘中,这样就提高了写磁盘的效率。
cached:主要用于提升读取相关页面的效率,内核会将经常访问的页面放到cached中,这样就提高了页面的命中率,cached越大,命中率就越高,就减少了I/O读请求。
以上是对buffers和cached的解释,这里主要讲下对cached的理解
cached又分为文件页(file cache)和匿名页(anonymous cache)