ZFS 2.0:在磁盘速度很慢且 CPU 较弱的情况下,如何降低写入时的 CPU 负载?

ZFS 2.0:在磁盘速度很慢且 CPU 较弱的情况下,如何降低写入时的 CPU 负载?

我有一块小型 32 位 ARM 主板,通过 USB 2.0 连接了三个磁盘。长期以来,它一直运行良好,使用 ZFS 0.7.1 和 0.6.x,我并不介意磁盘性能下降。(我在其他地方使用 ZFS,我希望当实际服务器出现故障时,它能够兼容并可用)。但是,我不得不升级发行版,0.7.1 无法再顺利安装,0.8.5/6 在负载下不稳定,但 2.0.1 再次完全稳定(功能仍然兼容 0.7.1)。我在此设备上不使用 ZVOL,只使用常规数据集。

我的问题:写入时 CPU 负载非常高。我的印象是,磁盘速度慢会导致 CPU 负载和 iowaits 大幅增加,从而导致 CPU 上的其他任务也被中断。我看过这个指导这解决了延迟问题,但并不能解决我的问题。

如果我知道理论最大写入速率,我应该解决哪些 ZFS 参数以避免高 CPU 负载?

答案1

简短的回答是:你不能。

长答案:zfs 使用一定数量的 CPU 来处理 iops,其中大部分是压缩和校验。如果您的 CPU 无法处理所需的数量 - 您将遇到冻结/峰值。部分解决方案是禁用压缩并设置更弱/更快的校验和算法。您也可以尝试磁盘 iops 调度程序,但这更像是一种精神支持措施。对于学术/测试用途,您也可以禁用 ZIL(zfs set sync=disabled <dataset>),但对于生产用途,这通常不是一个好主意。

相关内容