我当前的设置是这样的:
- Megaraid 9361-16i
- 12 个 12 TB SATA 磁盘 WD DC HC520
- 通过 4 个 SAS 端口中的 3 个连接到控制器
- 配置 Raid-10 或 Raid-6,无备用。Raid-6 处于写回模式
- 使用 ext4 格式化
- Ubuntu 22.04
我的基准测试应用程序对单个文件使用顺序直接 IO。我测试了最多 8 次并发写入,每次写入 4-6 MiB,直到文件大小达到多个 GiB。在 SSD 上,它可以轻松达到 2 GiB/s 或更高。
测量的吞吐量对于 Raid-10 仅为 150 MiB/s,对于 Raid-6 仅为 320 MiB/s。从他们的数据表这些磁盘应具有 243 MiB/s 的持续连续吞吐量。那么对于 Raid-6,我不应该更接近 2.3 GiB/s 吗?
所以现在我想知道我做错了什么,瓶颈在哪里,以及如何升级服务器来解决这个问题。最简单的升级路径是用等效的 SAS 磁盘替换 SATA 磁盘。这能解决我的问题吗?
答案1
我并不认为切换到 SAS HDD 会对你的写入速度产生任何有意义的影响。相反,尝试增加你的条带元素大小(对于 RAID10,好的起始值为 256K/512K,对于 RAID5/6,好的起始值为 64K)。此外,为了进行测试,你可以尝试启用物理磁盘 DRAM 缓存(但一定要了解它对数据安全的影响 - 这取决于控制器 -前将此设置投入生产)。
也就是说,现实世界的工作负载很少受到顺序读/写的限制,而往往对随机 IOP 更为敏感 - 并且 HDD 在小型随机操作时速度非常慢。
编辑:如果由于某种原因您无法从 RAID 控制器获得高性能,请尝试将其设置为直通模式(即根本没有 RAID)并配置 ZFS RAIDZ2 dev 或等效 MDRAID 12 驱动器 RAID6 阵列。