Linux软件RAID6:重建速度慢

Linux软件RAID6:重建速度慢,第1张

概述我试图找到重建软件raid6的瓶颈. ## Pause rebuilding when measuring raw I/O performance# echo 1 > /proc/sys/dev/raid/speed_limit_min# echo 1 > /proc/sys/dev/raid/speed_limit_max## Drop caches so that does not in 我试图找到重建软件raID6的瓶颈.
## Pause rebuilding when measuring raw I/O performance# echo 1 > /proc/sys/dev/raID/speed_limit_min# echo 1 > /proc/sys/dev/raID/speed_limit_max## Drop caches so that does not interfere with measuring# sync ; echo 3 | tee /proc/sys/vm/drop_caches >/dev/null# time parallel -j0 "dd if=/dev/{} bs=256k count=4000 | cat >/dev/null" ::: sdbd sdbc sdbf sdbm sdbl sdbk sdbe sdbj sdbh sdbg 4000+0 records in4000+0 records out1048576000 bytes (1.0 GB) copIEd,7.30336 s,144 MB/s[... similar for each disk ...]# time parallel -j0 "dd if=/dev/{} skip=15000000 bs=256k count=4000 | cat >/dev/null" ::: sdbd sdbc sdbf sdbm sdbl sdbk sdbe sdbj sdbh sdbg 4000+0 records in4000+0 records out1048576000 bytes (1.0 GB) copIEd,12.7991 s,81.9 MB/s[... similar for each disk ...]

因此,我们可以在外部磁道上以140 MB / s的顺序读取,同时在所有驱动器上以内部磁道的82 MB / s顺序读取.顺序写入性能类似.

这将使我预计重建速度为82 MB / s或更高.

# echo 800000 > /proc/sys/dev/raID/speed_limit_min# echo 800000 > /proc/sys/dev/raID/speed_limit_max# cat /proc/mdstatmd2 : active raID6 sdbd[10](S) sdbc[9] sdbf[0] sdbm[8] sdbl[7] sdbk[6] sdbe[11] sdbj[4] sdbi[3](F) sdbh[2] sdbg[1]      27349121408 blocks super 1.2 level 6,128k chunk,algorithm 2 [9/8] [UUU_UUUUU]      [=========>...........]  recovery = 47.3% (1849905884/3907017344) finish=855.9min speed=40054K/sec

但我们只有40 MB / s.通常这降至30 MB / s.

# iostat -dkx 1sdbc              0.00  8023.00    0.00  329.00     0.00 33408.00   203.09     0.70    2.12   1.06  34.80sdbd              0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00   0.00   0.00sdbe             13.00     0.00 8334.00    0.00 33388.00     0.00     8.01     0.65    0.08   0.06  47.20sdbf              0.00     0.00 8348.00    0.00 33388.00     0.00     8.00     0.58    0.07   0.06  48.00sdbg             16.00     0.00 8331.00    0.00 33388.00     0.00     8.02     0.71    0.09   0.06  48.80sdbh            961.00     0.00 8314.00    0.00 37100.00     0.00     8.92     0.93    0.11   0.07  54.80sdbj             70.00     0.00 8276.00    0.00 33384.00     0.00     8.07     0.78    0.10   0.06  48.40sdbk            124.00     0.00 8221.00    0.00 33380.00     0.00     8.12     0.88    0.11   0.06  47.20sdbl             83.00     0.00 8262.00    0.00 33380.00     0.00     8.08     0.96    0.12   0.06  47.60sdbm              0.00     0.00 8344.00    0.00 33376.00     0.00     8.00     0.56    0.07   0.06  47.60

iostat说磁盘不是100%忙(但只有40-50%).这符合最大值约为80 MB / s的假设.

由于这是软件raID,限制因素可能是cpu.顶部说:

PID USER      PR  NI  VIRT  RES  SHR S %cpu %MEM    TIME+  COMMAND                                                                              38520 root      20   0     0    0    0 R   64  0.0   2947:50 md2_raID6 6117 root      20   0     0    0    0 D   53  0.0 473:25.96 md2_resync

所以md2_raID6和md2_resync显然分别占据了64%和53%的cpu,但不是接近100%.

在测量哪个chunksize给出最小的cpu惩罚之后,选择RAID的块大小(128k).

如果速度正常:限制因素是什么?我可以测量一下吗?

如果这个速度不正常:我怎样才能找到限制因素?我可以改变吗?

解决方法 我不记得从4磁盘RAID 5迁移到6磁盘RAID 6时的速度,但它们相似(4TB可用阵列,24小时重建,所以大约45MB / s).

您必须记住,即使是speed_limit_min也会为尝试使用该阵列的应用程序提供一些优先级.因此,用于检测活动的机制可能需要在磁盘上加载50%来检测它,并且仍然能够提供IO请求.你尝试卸载分区了吗?

要检查瓶颈,您必须跟踪内核(例如,使用linux Tracing Toolkit lttng或System Tap).这并不容易,并且需要花费大量时间,除非你必须在几台计算机上重建阵列,否则它可能不值得.至于更改它:我确信欢迎使用linux内核的这些补丁:)

总结

以上是内存溢出为你收集整理的Linux软件RAID6:重建速度慢全部内容,希望文章能够帮你解决Linux软件RAID6:重建速度慢所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/1038544.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-24
下一篇 2022-05-24

发表评论

登录后才能评论

评论列表(0条)

保存