linux设置软raid6,Linux软件RAID6:重建速度慢

我试图找到重建软件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 in

4000+0 records out

1048576000 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 in

4000+0 records out

1048576000 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/mdstat

md2 : 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 1

sdbc 0.00 8023.00 0.00 329.00 0.00 33408.00 203.09 0.70 2.12 1.06 34.80

sdbd 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00

sdbe 13.00 0.00 8334.00 0.00 33388.00 0.00 8.01 0.65 0.08 0.06 47.20

sdbf 0.00 0.00 8348.00 0.00 33388.00 0.00 8.00 0.58 0.07 0.06 48.00

sdbg 16.00 0.00 8331.00 0.00 33388.00 0.00 8.02 0.71 0.09 0.06 48.80

sdbh 961.00 0.00 8314.00 0.00 37100.00 0.00 8.92 0.93 0.11 0.07 54.80

sdbj 70.00 0.00 8276.00 0.00 33384.00 0.00 8.07 0.78 0.10 0.06 48.40

sdbk 124.00 0.00 8221.00 0.00 33380.00 0.00 8.12 0.88 0.11 0.06 47.20

sdbl 83.00 0.00 8262.00 0.00 33380.00 0.00 8.08 0.96 0.12 0.06 47.60

sdbm 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).

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

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值