Задача сделать так, чтобы выполнение скрипта для бэкапа не сказывалось на производительности приложений
с интенсивными дисковыми операциями.
Решение - понижение приоритета скрипта в планировщике ввода/вывода 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
URL: http://www.cyberciti.biz/tips/linux-set-io-scheduling-class-...
Обсуждается: http://www.opennet.me/tips/info/1684.shtml
А еще rsync может ограничивать полосу пропускания.
Хороший ликбез. Спасибо!
А если бекапить мускульные/постгресовские базы?
> А если бекапить мускульные/постгресовские базы?Тогда лучше не мешать бекапу, пусть быстрее отработает да отпускает базу. :)
а почему бы не делать это со slave машины ?
Спасибо