The default value of zfs_scrub_min_time_ms is 1000. On my primary machine this results in multi-day scrubs. It’s not a big deal however increasing the value to a few seconds, say 4s, results in a dramatic increase in scrub speed where it completes in less than 24 hours. Are there any contraindications to permanently increasing this value?
The default value is low to give normal processes initiated by running services or users more iops and don’t hurt them. When you run your scrub at times where no user is involved your modified value is fine. You also could try to lower the value of zfs_scan_mem_lim_fact also too and measure scrub elapsed time again.