我的 5x1Tb WD Green HDD 家庭服务器中有一个 mdadm RAID-6。读取速度绰绰有余 - dd 为 268 Mb/s。但写入速度仅为 37.1 Mb/s。(均通过 dd 对 48Gb 文件进行测试,RAM 大小为 1Gb,测试中使用的块大小为 8kb)
您能否建议为什么写入速度如此之低,有什么办法可以改善吗?写入期间的 CPU 使用率仅为 25%(即 Opteron 165 的 1 个核心的一半)那里没有关键业务数据,服务器由 UPS 支持。
mdstat 是:
Personalities : [raid6] [raid5] [raid4]
md0 : active raid6 sda1[0] sdd1[4] sde1[3] sdf1[2] sdb1[1]
2929683456 blocks super 1.2 level 6, 1024k chunk, algorithm 2 [5/5] [UUUUU]
bitmap: 0/8 pages [0KB], 65536KB chunk
unused devices: <none>
有什么建议么?
诸如写回、屏障、nobh 之类的东西没有帮助。DD blocksize=1M, 8M 没有任何改变。看起来 mdadm 会物理读取扇区以计算奇偶校验,即使这并不重要......这是正确的吗?
更新:更改条带缓存后速度下降实际上是因为 1 个 HDD 可能在测试期间失败,很好 :-D
已解决:增加条带缓存并切换到外部位图后,我的写入速度为 160 Mb/s,读取速度为 260 Mb/s。:-D
您是否尝试过调整 /sys/block/mdX/md/stripe_cache_size?
根据此论坛帖子(挪威语,抱歉)“调整此参数越重要,磁盘越多,系统越快”:
引用他的速度进行比较:
我的家用服务器的磁盘几乎和你一样,使用 RAID 5:
所以看起来顺序写入性能大约是读取性能的 50%。
对于预期的性能,Linux Raid Wiki谈到了 RAID 5:
关于 RAID 6:
尝试
echo 32768 > /sys/block/md0/md/stripe_cache_size
并检查;)