The ionice (parameter -c) used to limit IO impact on the system stopped working when CFQ io scheduler wast dropped and replaced by mq-deadline. The latter does not implement it at all and this resulted as significant performance loss, noticed by many users. The docs have been updated but we could do more:
[ ] warn if scrub is started on a device that has mq-deadline as io scheduler, point to documenation
[ ] update docs to mention BFQ as an alternative io scheduler (check stability status)
[ ] cgroups (v2) could be used to limit io, this should work for scrub as well, provide example commands how to do that, eventually add a commandline prameter to either use existing cgroup (like idle class for the whole system) or to let scrub create its own with a given io limit (docker does something similar)
[ ] (bonus) somebody talks to block layer developers to find out if ionice will be back
The ionice (parameter -c) used to limit IO impact on the system stopped working when CFQ io scheduler wast dropped and replaced by mq-deadline. The latter does not implement it at all and this resulted as significant performance loss, noticed by many users. The docs have been updated but we could do more: