The zfs resilver delay is the amount of time in seconds zfs waits after any zfs io before queing any resilver operations, to avoid degrading performance.
The default on oursystem appears to have the resilver delay as 2. With that set, it takes 10+days to rebuild a disc when the server is busy with traffic. With it set to 0, resilvers on dreadnought took about 2 days even when it was fairly heavily used as fileserver – a performance hit to get to a stable system which is probably worthwhile.
On flat VM performance does seem noticeable degraded with it set to 0, so it’s currently set to 1. This can be tuned back to 0 overnight if needed.
Thankfully it’s a kernel tunable which can be modified on the fly.
To read do (on flat/dreadnought/round):
echo zfs_resilver_delay/d | mdb -k
To set do one of:
echo zfs_resilver_delay/w0 | mdb -kw
echo zfs_resilver_delay/w1 | mdb -kw
echo zfs_resilver_delay/w2 | mdb -kw