Page 1 of 2

[РЕШЕНО] Бэкап Vesta валит VPS сервер или разбиваем CRON задачи

Posted: Thu Mar 06, 2014 1:47 pm
by Bez
Итак, у меня второй день как появилась проблема - во время создания бэкапов, по 2-м юзерам создаются бэкапы, по 3-му - нет.
3-й юзер имеет больше всего сайтов и баз данных (всего сайтов - 16 штук, баз данных - 15 штук).
Всё осложняется тем, что Vesta своим кроном валит сервер и у меня падают все сайты.

Проверил бэкапы - последний по этому юзеру бэкап - позавчерашний.
По нему такие данные:
Run Time: 15 minutes
Размер - 580 Мб

Всего по серверу у меня такие данные за март, т.е. места навалом.
Bandwidth: 2% (2.06gb)
Disk: 14% (1.44gb)

Смотрю графики:
Load Average - ушел в пик во время создания бэкапов, максимум где-то на 95%
Memory Usage - тоже ушел в пик синхронно с Load Average, максимум под завязку - на 991 МБ (у меня всего гиг памяти).


Заходим в логи по бэкапу. Вижу такое:

Успешно прошел 4 базы данных, на пятой запнулся:

Code: Select all

2014-03-06 05:21:52 mysql (имя_базы_данных)
mysqldump: Got error: 1016: Can't open file: './(имя_базы_данных)/tax_rule.frm' (errno: 24) when using LOCK TABLES
shell-init: error retrieving current directory: getcwd: cannot access parent directories: No such file or directory
shell-init: error retrieving current directory: getcwd: cannot access parent directories: No such file or directory
job-working-directory: error retrieving current directory: getcwd: cannot access parent directories: No such file or directory
shell-init: error retrieving current directory: getcwd: cannot access parent directories: No such file or directory
Error: dump (имя_базы_данных) failed
Захожу глянуть ошибки в соседнем файле, всё норм. На эти даты ничего такого не было.

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


В связи с тем, что сервер валится из-за создания бэкапов, вопрос - можно ли разбить как-то задачу CRON по созданию бэкапов?
Не в один присест всё делать, а в несколько этапов.
Какие варианты есть изменения стандартной задачи крона sudo /usr/local/vesta/bin/v-backup-users ?

Re: Бэкап Vesta валит VPS сервер

Posted: Thu Mar 06, 2014 1:54 pm
by Bez
График за день.
Image

Re: Бэкап Vesta валит VPS сервер

Posted: Thu Mar 06, 2014 2:09 pm
by Bez
На всякий случай, выкладываю настройки PHP (последний раз правил неделю назад):
max_execution_time = 30
max_input_time = 60
memory_limit = 128M
post_max_size = 80M
upload_max_filesize = 80M
max_file_uploads = 20
default_socket_timeout = 60
pdo_mysql.cache_size = 20000
mysql.cache_size = 20000
mysql.connect_timeout = 60

Re: Бэкап Vesta валит VPS сервер

Posted: Thu Mar 06, 2014 3:47 pm
by Bez
Теперь, я ничего не исправляя и ничего не делая, запускаю создание бэкапа для этого юзера.
Проходит время, сервер на удивление стоит, бэкап успешно создался со следующими данными:
Backup Size: 590mb (позавчера было 558mb)
Run Time: 9 minutes (позавчера было 15 минут).

Т.е. проблема в том, что CRON делает на всех юзеров сразу и валит этим сервер.

Скажите, пожалуйста, какие строчки отвечают в файле /usr/local/vesta/bin/v-backup-users (или в v-backup-user)
за бэкап баз данных? Я хочу попробовать отдельно поставить 2 задачи CRON:
1. всем юзерам создание бэкапов файловой системы.
2. всем юзерам создание бэкапов баз данных.

И поставлю их с разным временем. Думаю, это облегчит нагрузку на сервер.

И второй вопрос правильно ли я написал команду создания бэкапа для отдельного юзера?
sudo /usr/local/vesta/bin/v-backup-user (имя_юзера)

Re: Бэкап Vesta валит VPS сервер

Posted: Thu Mar 06, 2014 3:57 pm
by margent
Не нашел ответа, спрошу тут.
Панель не собираются научить складывать бэкапы по фтп на внешний ресурс?

Re: Бэкап Vesta валит VPS сервер

Posted: Thu Mar 06, 2014 4:02 pm
by Bez
Я думаю, вы можете заказать написание скрипта, который будет синхронизировать папку backup на вашем сервере с папкой на другом (удалённом) сервере. Не знаю, есть ли такие вещи на практике.

Re: Бэкап Vesta валит VPS сервер

Posted: Thu Mar 06, 2014 4:19 pm
by margent
У Selectel есть бесплатный скрипт, он может забэкапить любые директории, но только в свое облако)

Re: Бэкап Vesta валит VPS сервер или разбиваем CRON задачи

Posted: Thu Mar 06, 2014 8:28 pm
by imperio
Панель не собираются научить складывать бэкапы по фтп на внешний ресурс?
Собираются, но сейчас много других приоритетных задач. В ближайших релизах этого точно не будет.
Делайте пока локально и (или) на ftp сервер.

По вопросу ТС
Настройки php у вас в норме.
Такой нагрузки при создании бекапов быть не должно. К тому же не такой уж и большой объем данных.
вопрос - можно ли разбить как-то задачу CRON по созданию бэкапов?
нет, нельзя. Разбить можно только по отдельному пользователю.
И второй вопрос правильно ли я написал команду создания бэкапа для отдельного юзера?
sudo /usr/local/vesta/bin/v-backup-user (имя_юзера)
Да, верно
Скажите, пожалуйста, какие строчки отвечают в файле /usr/local/vesta/bin/v-backup-users (или в v-backup-user)
за бэкап баз данных? Я хочу попробовать отдельно поставить 2 задачи CRON:
1. всем юзерам создание бэкапов файловой системы.
2. всем юзерам создание бэкапов баз данных.
нужно узнавать у программистов панели

Re: Бэкап Vesta валит VPS сервер или разбиваем CRON задачи

Posted: Fri Mar 07, 2014 10:00 am
by Bez
Спасибо большое за ответы!

Из этой темы я делаю три вывода:
1. Если крон валит сервер, то можно изменить задачу по созданию бэкапов по всем пользователям, скажем, раз в неделю в воскресенье (в поле day пишу "0").
2. Для эжедневного бэкапа прописать по каждому активному юзеру команду

Code: Select all

sudo /usr/local/vesta/bin/v-backup-user (имя_юзера)
3. Теоретически, кто-то может перепрограммировать файл v-backup-user и разбить задачу по созданию бэкапов файлов и баз данных в два отдельных файла.

Re: Бэкап Vesta валит VPS сервер или разбиваем CRON задачи

Posted: Fri Mar 07, 2014 12:26 pm
by imperio
Если крон валит сервер, то можно изменить задачу по созданию бэкапов по всем пользователям, скажем, раз в неделю в воскресенье (в поле day пишу "0").
Да, можно. Только ещё раз повторюсь что такой нагрузки быть не должно. Нужно выяснить причину такого поведения сервера.
в поле day пишу "0"
неправильно.
поле day это день месяца
а Day of week это день недели. Чтобы делалось в воскресенье нужно поставить значение 7
Для эжедневного бэкапа прописать по каждому активному юзеру команду
верно и желательно каждую команду в разное время.
Теоретически, кто-то может перепрограммировать файл v-backup-user и разбить задачу по созданию бэкапов файлов и баз данных в два отдельных файла
программисты на индивидуальной основе.