Задача сделать так, чтобы выполнение скрипта для бэкапа не сказывалось на
производительности приложений
с интенсивными дисковыми операциями.
Решение - понижение приоритета скрипта в планировщике ввода/вывода CFQ, который
включен в Linux ядро,
начиная с версии 2.6.13, и используется по умолчанию начиная с 2.6.18.
Проверяем, что активный планировщик у нас CFQ:
for d in /sys/block/sd[a-z]/queue/scheduler; do echo "$d => $(cat $d)" ; done
Видим: /sys/block/sda/queue/scheduler => noop anticipatory deadline [cfq]
Запускаем скрипт бэкапа с пониженным приоритетом:
nice -n 19 ionice -c2 -n7 backup.sh
утилитой nice с самым низким приоритетом вызываем утилиту ionice cо 2 классом планировки (
1 - real time, 2 - нормальный режим, 3 - работа только в моменты простоя (idle))
и самым низким уровнем приоритета (7).
Если процесс все равно мешает, можем на лету перевести его в idle режим:
ionice -c3 -p 1004
или изменить приоритет планировщика:
renice 19 -p 1004
Где 1004 - PID процесса.
|