В системе работает CENTOS 5.8, Apache 2.2.3, MySQL 5.0.95, PHP 5.3.3.
Мы запускаем mysqldump ежедневно для нескольких баз данных. Он запускается через скрипт php, вызываемый в crontab.
Они запускаются одновременно и вызывают скачок нагрузки на сервер. Итак, я собираюсь поразить времена, когда вызываются дампы.
Мне было интересно, вызывать ли команды прямо в crontab:
0 3 * * * /usr/bin/mysqldump -u XXX -p XXX params db_name | gzip params > /var/www/backups/database/daily/daily-db_name-`date +\%d`.tar.gz
Или через сценарий оболочки для установки переменных.
Было бы меньше нагрузки, чем вызов php-скрипта, который использует exec ():
exec( "/usr/bin/mysqldump -u XXX -p XXX params db_name | gzip params > /var/www/backups/database/daily/daily-db_name-`date +\%d`.tar.gz" );
Я подумываю о проведении теста, но хотел проверить, не вызывает ли это затруднений.
Результат
Провел несколько тестов, и нагрузка разными методами заметно не изменилась. Я предполагаю, что это может иметь значение для другого типа операции, в которой задействовано много процессов.
Используемый файл php отслеживается в нашем репозитории svn, поэтому лучше придерживаться этого подхода.
Первый пример будет менее загруженным - у него будет меньше процессов для запуска / запуска. На самом деле, это может быть не видимая меньшая нагрузка, но в абсолютном выражении она меньше.