Назад | Перейти на главную страницу

Ночное резервное копирование и производительность сервера

В определенное время запускаем несколько скриптов резервного копирования для резервного копирования:

В это время веб-сайты на сервере перегружаются, вызывая тайм-ауты и проблемы с подключением к базе данных.

Итак, я представляю, что делаю это неправильно. Как лучше всего выполнять ночное резервное копирование, не влияя на производительность сайтов на сервере?

ОС: приложения Centos: MySQL, Rsync

Резервные копии делаются на удаленный сервер.

Из-за операции резервного копирования возникает конкуренция за диск и процессор, а также, возможно, за сетевые ресурсы, поэтому ваш сайт не отвечает. Чтобы избежать этого, вам придется уменьшить приоритеты io и cpu операций резервного копирования, чтобы ваш сайт мог нормально функционировать.

Вы можете использовать это перед вызовом сценария резервного копирования.

root@x:~# bash
root@x:~# echo $BASHPID
6576

Переменная BASHID - это PID текущего сеанса bash

root@x:~# ionice -c 2 -n 7 -p $BASHPID

Это снизит приоритет диска io вашей текущей оболочки.

-c = class (0 - нет, 1 - в реальном времени, 2 - с максимальным усилием, 3 - в режиме ожидания)

-n = приоритет (0-7, 0 - наивысший приоритет)

root@x:~# renice  +10 -p  $BASHPID

Это уменьшит приоритет планирования процессора вашей текущей оболочки (-19 - максимальный приоритет, а 20 - наименьший).

root@x:~# ./backup-script

Теперь отсюда вы можете вызвать сценарий резервного копирования. Поскольку дочерние процессы наследуют приоритеты cpu и io от родительских, ваши процессы сценария резервного копирования будут выполняться с более низкими приоритетами io, cpu, и поэтому процессы вашего сервера имеют приоритет над резервным копированием.

Если вы используете задание cron, вы можете поместить все вышеперечисленные команды в файл, chmod для разрешений x и добавить этот файл в cron.

В случае, если сеть является узким местом, вам, возможно, придется использовать «tc» для классификации резервного трафика и ограничения его скорости. Вы можете прочитать об ограничении скорости здесь. http://wiki.openvz.org/Traffic_shaping_with_tc

Трудно ответить, не зная, какая ОС, приложения, файловые системы и носители резервных копий задействованы.

Без всего этого мой ответ: rsync