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

Запретить Rsync и SCP вызывать тайм-аут страницы на сервере LAMP

Я пытаюсь запустить Rsync, чтобы переместить статические файлы с нашего выделенного сервера на наш новый облачный сервер.

Следующая команда работает, но при ее запуске останавливает все обслуживаемые веб-страницы.

rsync -azP --delete -e 'ssh -p 1234' 
    /var/www/vhosts/example.com/httpdocs/images/20* 
    user@server:/var/www/vhosts/example.com/httpdocs/images/.

Итак, я пробовал использовать nice и ionice для снижения приоритета CPI и ввода-вывода и использования другого шифра поверх SSH - я нашел сообщения, предполагающие, что это снизит нагрузку на сервер:

nice -n19 ionice -c2 -n7 rsync -azP --delete --rsh="ssh -c arcfour" -e 'ssh -p 1234' 
    /var/www/vhosts/example.com/httpdocs/images/20* 
    user@server:/var/www/vhosts/example.com/httpdocs/images/.

Но это не имеет значения, как только скрипт запускает страницы на http://example.com прекратить обслуживание, и как только я использую CTRL + C, чтобы убить команду Rsync, страницы снова начинают обслуживать.

Я мог бы поместить это в задание crontab для запуска, когда трафик сайта низкий, но я хотел бы иметь возможность синхронизировать серверы в течение дня.

Есть ли способ заставить Rsync перестать блокировать apache или есть другой способ передачи данных?

Я также пробовал сделать tar.gz архив и передача через scp, но размер файла составляет 2,5 ГБ, и у меня такая же проблема.

Мы будем перемещать весь наш статический контент на Amazon S3 - но это гораздо более сложная задача, и я надеюсь, что смогу просто переместить статический контент тем временем, чтобы убить старую машину.

Получите более быстрые диски. Rsync не блокирует apache. Дефицит io операций делать.

Я не ожидал, что Apache перестанет обслуживать во время передачи. Я могу придумать четыре вещи, которые могут замедлить работу Apache.

  • Насыщение полосы пропускания. Использовать --bwlimit при запуске rsync.
  • ЦП (хотя с rsync проблем быть не должно). Использовать top контролировать. Использовать nice или renice чтобы снизить приоритет.
  • Дисковый ввод-вывод. Использовать ionice с приоритетом простоя.
  • Объем памяти. Рассмотрите возможность уменьшения количества дочерних процессов Apache, чтобы освободить часть памяти. top может показать некоторые проблемы.

Для начальной передачи я бы подумал об использовании tar для передачи содержимого. Затем вы можете использовать rsync подобрать любые изменения.

Как уже было отмечено, рассмотрите возможность перемонтирования с noatime или relatime как обновление atime может сильно нагружать диски.

Я бы подумал об использовании sar для мониторинга системы, чтобы увидеть, какой ресурс является узким местом. Он может контролировать все ваши ресурсы. Сохраните данные или выведите их в файл, чтобы вы могли изучить их на досуге.