>> Try setting the zfs_scrub_delay to 1 but increase the
>> zfs_top_maxinflight to something like 64.
With the delay set to 1 or higher it doesn't matter what I set the
maxinflight value to- when I check with:

echo "::walk spa | ::print spa_t spa_name spa_last_io spa_scrub_inflight"

The value returned is only ever 0, 1 or 2.

If I set the delay to zero, but drop the maxinflight to 8, then the
read rate drops from 400MB/s to 125MB/s.

If I drop it again to 4- then the read rate drops to a much more
manageable 75MB/s.

The delay seems to be useless on this array- but the maxinflight makes
a big difference.

At 16 my read rate is 300. At 32 it goes up to 380. Beyond 32 it
doesn't seem to change much- it seems to level out at about 400 and
50k R/s:

pool0       14.1T  25.3T  51.2K      4   402M  35.8K
pool0       14.1T  25.3T  51.9K      3   407M  31.8K
pool0       14.1T  25.3T  52.1K      0   409M      0
pool0       14.1T  25.3T  51.9K      2   407M   103K
pool0       14.1T  25.3T  51.7K      3   406M  31.9K

I'm going to leave it at 32 for the night- as that is a quiet time for us.

In fact I will probably leave it at 32 all the time. Since our array
is very quiet on the weekends I can start a scan on Friday night and
be done long before Monday morning rolls around. For us that's
actually much more useful than having the scrub throttled at all
times, but taking a month to finish.

Thanks for the suggestions.

-Don
_______________________________________________
zfs-discuss mailing list
zfs-discuss@opensolaris.org
http://mail.opensolaris.org/mailman/listinfo/zfs-discuss

Reply via email to