xtrabackup на нагруженных серверах
Что есть в наличии (пример одного сервера):
debian stretch
percona-server-server-5.7 5.7.21-21-3.stretch
percona-xtrabackup-24 2.4.12-1.stretch
hardware memory 96G
16 core
load average - 10-12
mysql:
innodb_buffer_pool_size = 72G
459G - size of the db
QPS - 6500
Делаю полный бекап (datadir - SSD, target-dir - HDD (зеркало md raid)):
time ionice -c 3 xtrabackup --backup --throttle=90 --user=debian-sys-maint --password=PASSWORD
--datadir=/storage/mysql/data --host=localhost --target-dir=/home/xtrbackup/FULL
--port=3306 --use-memory=6GB --parallel=8
Т.е. стараюсь ограничить нагрузку по io.
К БД у нас обращаются через haproxy. В процессе бекапа в системе мониторинга (nagios) начинают "падать" алармы об отпавших проверках различных параметров БД (т.е. скрипт не мог в ответеденное время подключиться для сбора метрик) +
балансировщик начинает спамить о том, что один из бэкендов недоступен. Плюс в процессе работы на сервере терминал ощутимо периодически подтормаживал. (сейчас уже не помню во что именно упирались - cpu или IO, но видимо IO, т.к.
LA был не выше кол-ва ядер)
Пробовал запустить полный бекап на другом нагруженном сервере БД - ситуация повторилась.
Пока больше не хочется пробовать на нагруженных БД такой бекап, создалось впечатление, что xtrabackup надо использовать на слейвах, на которых отсутствует нагрузка.
Кто как выкручивается при бекапе БД через xtrabackup? Или я делаю что-то не так?
Плюс —prepare также дает неслабую нагрузку, но ее можно уже запускать на другом сервере.
вообще --throttle=90 означает примерно "не больше 900 MB/sec". что наверняка многовато
Обсуждают сегодня