miller
发布于

Page Cache


linux 内核2.4开始

Cache与Buffer是我们容易混淆的内存概念,Cache名为缓存,Buffer名为缓冲,虽一字之差,但是它们在不同语境下的含义却大不相同。

CPU执行的指令需要从内存中取出,计算结果也需回写到内存中,但内存的响应速度跟不上CPU的话,CPU只能等待,这样CPU也无法发挥效率。同理,内存中的数据也是要回写到磁盘的,但是磁盘的低速读写远比不上内存的二进制电压变化速度。这样巨大的差异,即使内存读写速度再快,还是要被磁盘拖后腿。而Cache和Buffer的出现就是为了弥补高速设备和低速设备之间的矛盾而设立的中间层。

Cache会将低速设备中常被访问的数据缓存起来,当高速设备需要再次访问这些数据时,会命中Cache中的数据,以减少对低速设备的访问。

Buffer用于缓和高速设备要把数据回写到低速设备时带来的冲击,当数据量比较大时,Buffer能将数据分割成合适的大小,分批回写到磁盘;当数据量比较小的时候,Buffer能将分散的写操作集中进行,减少磁盘碎片和硬盘的反复寻道,通过“流量整形”提高系统性能。

https://zhuanlan.zhihu.com/p/405929922

浏览 (314)
点赞
收藏
评论