使用 mdadm 的 RAID1 写入惩罚 - 原因是什么?

使用 mdadm 的 RAID1 写入惩罚 - 原因是什么?

在对基于 SSD 的 3 路 RAID 1 镜像进行一些性能测试(由 mdadm 提供支持)时,我们似乎遭受了严重的写入损失,比仅在单个驱动器上进行相同测试慢了约 2.2 倍。我们在此测试中读取和写入相同的底层物理驱动器,因为这模拟了我们感兴趣的真实世界测试案例。

这种减速是由于 SATA III 速度限制还是其他原因造成的?我很惊讶 RAID 1 会有写入损失,因为我认为它可以同时写入所有三个驱动器,速度与写入其中一个驱动器的速度相同。

All three drives present:
dd if=/dev/md3 of=test.file bs=1048576 count=37193
...207.748 s, 188 MB/s

Just two drives present (i.e. normal two-drive RAID 1)
dd if=/dev/zero of=test.file bs=1048576 count=37193
...119.016 s, 328 MB/s

Just one drive present (no redundancy)
dd if=/dev/zero of=test.file bs=1048576 count=37193
...93.794 s, 416 MB/s

答案1

看起来所有三个 SSD 都在同一个控制器上,并且您达到了最高 SATA III 速度等级:

第三代 SATA 接口的原始传输速率为 6.0 Gbit/s;考虑到 8b/10b 编码,最大未编码传输速率为 4.8 Gbit/s(600 MB/s)。来源

您对同时写入所有三个驱动器的测试,因此 188MB/s 实际上是 564MB/秒,略低于最大速度。

如果您可以将一个或多个 SSD 移动到单独的控制器,这可能会有所帮助。

您遇到的这个限制是基于 PCIe 闪存的存储出现在越来越多的高端系统中的原因之一。

相关内容