我的 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>
Run Code Online (Sandbox Code Playgroud)
有什么建议?
诸如回写、屏障、nobh 之类的事情没有帮助。DD blocksize=1M, 8M 没有任何改变。看起来 mdadm 会物理读取扇区来计算奇偶校验,即使这无关紧要......对吗?
更新:更改条带缓存后速度下降实际上是因为 1 个 HDD 在测试期间可能出现故障,很好 :-D
已解决:增加条带缓存并切换到外部位图后,我的速度为 160 Mb/s 写入,260 Mb/s 读取。:-D
您是否尝试过调整 /sys/block/mdX/md/stripe_cache_size?
根据此论坛帖子(在挪威语中,抱歉)“您拥有的磁盘越多,系统越快,调整此参数就越重要”:
在我的系统上,我使用值 8192 获得了最佳性能。如果我使用默认值 256,写入性能会下降 66%。
引用他的速度进行比较:
磁盘:8xSeagate 2TB LP (5900RPM) in mdadm RAID6 (-n 512) (stripe_size_cache=8192)。
CPU: Intel X3430 (4x2.4GHz, 8GB DDR3 ECC RAM)
速度:387 MB/s 顺序写入,704 MB/s 顺序读取,每秒 669 次随机搜索。
我的家庭服务器和你有几乎一样的磁盘,使用 RAID 5:
磁盘:RAID 5 中的 4x1.5TB WD Green(stripe_size_cache=256 - 默认值)
CPU:英特尔 i7 920(2.66 GHz,6 GB RAM)
速度:60 MB/s 顺序写入,138 MB/s 顺序读取(根据 Bonnie++)
所以看起来顺序写入性能大约是读取性能的 50%。
对于预期的性能,Linux Raid Wiki说到 RAID 5:
读取几乎类似于 RAID-0 读取,写入可能相当昂贵(需要在写入之前读入,以便能够计算正确的奇偶校验信息,例如在数据库操作中),或者类似于 RAID-1写入(当执行较大的顺序写入时,可以直接从要写入的其他块计算奇偶校验)。
关于 RAID 6:
读取性能类似于 RAID-5,但写入性能更差。
| 归档时间: |
|
| 查看次数: |
26968 次 |
| 最近记录: |