Urgh. I had a RAID 6 reshape on my NAS that was projected to take 28 days to complete, I kid you not. It was stuck at an abysmal 4MB/s transfer rate. Here’s how to unblock it.
First, follow all the advice on general raid speedups – assuming md2 is your RAID device and you need to replace sd[DEVICE] below with the correct block devices that constitute the array:
echo 50000 > /proc/sys/dev/raid/speed_limit_min
echo 100000 > /proc/sys/dev/raid/speed_limit_max
blockdev –setra 65536 /dev/md2
echo 32768 > /sys/block/md2/md/stripe_cache_size
echo 1 > /sys/block/sd[DEVICE]/device/queue_depth
This is all common advice that it is easy to find. But I was still stuck at the hideous transfer rate. I was worried there was a firmware fault with my drives. What unblocked it for me was:
echo max > /sys/block/md2/md/sync_max
Bingo. Up to 45MB/s now, even during heavy write usage from other processes.