Raid 控制器回写缓存行为

Raid 控制器回写缓存行为

我试图了解,当您写入大量随机数据集时,RAID 控制器上的写回缓存如何能够继续产生效益。首先我要说的是,我理解写回缓存的工作原理:当数据到达控制器缓存而不是较慢的底层介质时,操作系统在写入时获得 I/O 完成,然后控制器以最快的速度将数据写入介质。因此,在这种情况下,如果您写入数据的速度非常快,超过了后备介质写入数据的速度,我预计会破坏控制器缓存,并且写回的性能提升会消失,最终您会获得与写通设置相当的性能?

上面描述的是我所期望的,但这不是我所看到的。与我置于写入模式的相同服务器相比,写回缓存支持的服务器始终具有至少 4 倍的 IOPS 和吞吐量,并能维持这一水平。有什么想法可以解释这种行为吗?

是的,我写入的数据远远超过了文件系统缓存所能容纳的数据量,而且我写入的速度非常快。

答案1

写回缓存允许操作系统在写入之前更好地组织数据,从而提高性能。如果您进行大量相对较小的写入,那么只需将来自几次连续写入的数据放在一起并一次性将其写入介质即可显著提高性能。

在较小程度上,写回缓存可以帮助操作系统在写入期间匹配簇大小。例如,如果您一次写入 10000 个字节,而簇大小为 8192 个字节,则缓存将阻止操作系统将 1808 个字节写入部分填充的簇(这需要先读取簇)。

相关内容