暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

Page buffer和Page cache作用和区别

春哥叨叨 2021-04-18
1474

学习kafka或者es的时候大家都接触过Page cache的概念,那么Page cache究竟是做什么的呢?Page buffer又是什么呢?

这两者都属于读写缓存。

Buffers 是对原始磁盘块的临时存储,也就是用来缓存磁盘的数据,通常不会特别大(20MB 左右)。

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

Cache 是从磁盘读取文件的页缓存(page cache),也就是用来缓存从文件读取的数据 这样,下次访问这些文件数据时,就可以直接从内存中快速获取,而不需要再次访问缓慢的磁盘。

写文件时会用到 Cache 缓存数据,而写磁盘则会用到 Buffer 来缓存数据 从写的角度来说,不仅可以优化磁盘和文件的写入,对应用程序也有好处,应用程序可以在数据真正落盘前,就返回去做其他工作。

从读的角度来说,既可以加速读取那些需要频繁访问的数据,也降低了频繁 I/O 对磁盘的压力。

最后我们来说write cache。所谓write cache,就是要设法减少写入次数。也就是说,如果某些数据需要产生多次写入,那么使用cache就可以只将最终数据写入,导致最终写入数据减少。

还有一点要说,两者都是内核态控制的。

文章转载自春哥叨叨,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论