为什么扩展阵列后,Linux 上的 zfs 传输速率报告不正确?

为什么扩展阵列后,Linux 上的 zfs 传输速率报告不正确?

我已经升级了 NAS 服务器中 4 驱动器 Raidz 阵列中的驱动器,并且阵列已自动扩展到新大小。在测试 NAS 服务器的传输速率时,我发现在执行大量读取传输时性能不佳,很难超过 10MB/s,尽管 iotop 和 zpool iostat 可以报告高达 500MB/s 的非常高的数字。什么可能导致这种奇怪的行为?在升级阵列时,我还观察到,无论是有 4 个设备在线还是降级为 3 个,它的性能都相同。

该服务器通过单个千兆网络连接,可以使用 ext4 的单个驱动器来饱和

答案1

我发现,当我尝试使用缓存设置来查看会发生什么时,我关闭了主缓存,这会导致实际 IO 远远大于逻辑 IO,因为

[应用程序] 读取一个文件,获取 4k(页面大小?)数据并处理它,然后读取下一个 4k,等等。

但是,ZFS 无法只读取 4k。默认情况下,它读取 128k(记录大小)。由于没有缓存(您已将其关闭),其余数据将被丢弃。

128k / 4k = 32

32 x 2.44GB = 78.08GB

FreeBSD 论坛

相关内容