ionice for the backup that starves everything else

A nightly dump reading the entire database saturates the disk queue, and every application query behind it waits — so the backup window is also a latency incident nobody attributes to the backup.

ionice -c2 -n7 nice -n19 mysqldump --single-transaction shop 
  | gzip -1 > /backup/shop.sql.gz

# -c2 -n7  best-effort class, lowest priority
# nice -19 the same for CPU
# gzip -1  because -9 is CPU-bound and the disk is the constraint

The two together are what make it invisible: I/O priority alone still leaves gzip competing for CPU with php-fpm. gzip -1 rather than -9 is the counterintuitive part — the compression ratio difference on a SQL dump is a few percent and the CPU difference is several times, so the low setting finishes sooner and interferes less. On a machine with cgroup v2, a systemd slice with an IO weight is the more thorough version of the same idea.