How to speed up slow zpool scrub?
Adam Nowacki
nowakpl at platinum.linux.pl
Wed Apr 27 17:46:09 UTC 2016
On 2016-04-27 14:05, Miroslav Lachman wrote:
> Andy Farkas wrote on 04/27/2016 06:39:
>>> -----Original Message-----
>>> From: PK1048 [mailto:paul at pk1048.com]
>>> Sent: Wednesday, 27 April 2016 12:34 PM
>>> To: Andy Farkas <andyf at andyit.com.au>
>>> Cc: freebsd-fs at freebsd.org
>>> Subject: Re: How to speed up slow zpool scrub?
>>>
>>> ...
>>> Scrubs (and resilver) operations are essentially all random I/O. Those
>>> drives are low end, low performance, desktop drives.
>>
>> Yes, the system is an old low end, low performance desktop. That was
>> my point, that it took 25 hours to scrub 7.52T and not 4 days like the
>> OP is saying.
>
> Thank you for output of your zpool scrub. It is definitely faster than
> mine.
>
> To: Paul pk1048
> Mine scrub does not repair anything. Drives are OK (in SMART).
> CPU is about 70%-90% idle during scrub + rsync backup and drives are
> about 60%-70% busy according to iostat:
>
> root at kiwi ~/# iostat -x -w 10 ada0 ada1 ada2 ada3
> extended device statistics
> device r/s w/s kr/s kw/s qlen svc_t %b
> ada0 70.1 17.9 1747.0 802.4 0 7.0 24
> ada1 70.1 17.9 1747.1 802.4 0 7.0 25
> ada2 66.9 17.1 1686.4 791.3 4 6.5 23
> ada3 66.9 16.9 1686.3 790.1 2 6.6 23
> extended device statistics
> device r/s w/s kr/s kw/s qlen svc_t %b
> ada0 93.6 13.0 576.4 244.0 0 21.6 70
> ada1 98.6 12.9 587.2 246.4 2 20.5 71
> ada2 87.9 15.3 566.0 242.4 3 20.5 67
> ada3 84.9 14.5 549.2 237.2 3 20.4 66
> extended device statistics
> device r/s w/s kr/s kw/s qlen svc_t %b
> ada0 98.7 42.5 1924.7 2536.3 1 26.3 86
> ada1 99.1 45.5 1931.5 2671.5 1 23.8 87
> ada2 94.2 44.9 1840.7 2720.3 0 20.1 76
> ada3 93.6 42.7 1807.9 2607.1 0 18.7 75
> extended device statistics
> device r/s w/s kr/s kw/s qlen svc_t %b
> ada0 108.2 28.2 1092.6 1316.6 2 17.3 68
> ada1 101.6 26.3 1053.8 1183.4 3 15.5 67
> ada2 98.6 26.0 1000.2 1126.2 2 12.2 57
> ada3 104.0 24.0 1015.8 1080.6 3 14.1 60
> extended device statistics
> device r/s w/s kr/s kw/s qlen svc_t %b
> ada0 116.0 18.5 821.8 807.8 0 12.9 62
> ada1 117.2 18.5 822.2 807.0 0 13.5 63
> ada2 110.8 20.9 743.0 803.8 0 11.1 58
> ada3 108.2 20.0 688.2 755.0 2 11.3 55
> extended device statistics
> device r/s w/s kr/s kw/s qlen svc_t %b
> ada0 121.8 16.6 602.1 526.9 3 9.2 52
> ada1 122.2 16.5 606.9 528.5 4 9.8 54
> ada2 117.0 14.6 601.7 524.9 2 11.3 60
> ada3 120.6 13.5 610.1 491.3 0 11.4 61
>
> I really don't know why it cannot go faster if nothing is loaded for 100%.
1) zpool scrub is single threaded with prefetch,
2) some data blocks do not span all disks (metadata, small files,
compression)
End result is that zfs can't always read from all disks during scrub so
disk utilization is going to be less than 100% even when going at full
speed.
More information about the freebsd-fs
mailing list