Резервное копирование ISP — риск ухода сервера в SWAP

Резервное копирование сайтов — это хорошо. Как говорится, лучше перебдеть, чем недобдеть. Помню, как восстанавливал из кэша Google 400 статей блога — 20 часов нудной работы (вот эта история). Хорошие хостеры знают, что вам лень делать бэкапы, потому сами создают резервные копии. Но удобней и надёжней делать резервные копии самостоятельно (в ISP есть такая возможность) с сохранением на удалённый FTP. Только в этом случае надо иметь ввиду некоторую особенность самостоятельного резервного копирования.

А именно то, что вы используете (ISP использует) программу сжатия «gzip». Это нормально и логично. Но процесс архивации имеет весьма нескромный аппетит потребления оперативной памяти. Например, у меня полный бэкап весит около 2 ГБ, на сервере 4 ГБ ОЗУ. При обычной работе всегда свободно 2,5 ГБ, а большую часть времени свыше 3 ГБ. Но во время создания бэкапа занимается вся память ОЗУ и подключается SWAP:

Память ОЗУ занята

Создание бэкапа у меня выполняется во время минимальной нагрузки на сервер (5 часов по МСК — поглядел в Метрике: мониторинг — трафик по минутам). Но после его окончания память освобождается не сразу, а в течение нескольких часов. Если возникнет нагрузка в то время, когда память исчерпана, сервер может уйти SWAP, т.е. работать будет не из оперативной памяти, а из файла подкачки, что в разы медленней.

Главное — заметить эту проблему, а решение найти — не проблема. Как видно по рисунку, тонкое место в работе сервера помогла найти утилита «atop», которая сохраняет в лог состояние системы каждые 10 минут (опционально — можно хоть каждую минуту фиксировать).

Настройка резервного копирования в ISP

Решение я нашёл в том, чтобы бэкапить не все файлы сразу, а частями. БД весят относительно мало, потому настроил ежедневное сознание их бэкапа. Бэкап файловой системы настроил еженедельный. В ISP посетил раздел «Статистика» — «Использование диска». Прикинул, как распределить файлы в бэкапах так, чтобы получилось 5 групп с размером, не превышающим 500 МБ. Затем «Обслуживание» — «Настройка резервного копирования». Создал по заданию для каждой группы:

Настройка резервного копирования

Чтобы добавить файлы какого-то определённого сайта в задание, нужно его выбрать, нажать «Данные» и добавить директорию сайта:

Включение данных в бэкап

Но это не всё. При такой настройке, как на предыдущих рисунках, 5 заданий по архивации файлов запустятся одновременно в воскресенье. Теперь их надо распределить по дням. Если, конечно, распределение по времени не устраивает.

Выполнение заданий в разные дни

Я хочу, чтобы создание бэкапов запускалось в самое «тихое» время, потому распределяю по дням. Для этого иду в «Инструменты» — «Планировщик (cron)». Выбираю задание «backup N», жму «Изменить». В последней строке указываю для каждого задания свой день недели (0 и 7 — воскресенье, 1 — понедельник и т.д.)

Кстати, где-то читал, мол, такое редактирование заданий в кроне не влияет на время запуска задания бэкапа. Дескать, только в «Настройке резервного копирования» можно задать время. Может быть, речь шла о какой-то древней версии ISP, но у меня всё работает так, как задумано.

Запись опубликована в рубрике Web-мастеринг с метками , , . Короткая ссылка для добавления в закладки: Резервное копирование ISP — риск ухода сервера в SWAP.

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Иногда ваш комментарий может не отобразиться сразу после публикации - будто пропал. Не волнуйтесь, он не пропадёт и появится потом, после моего одобрения.