Rsync Ionice назначения

14

Чтобы rsync не приводил к голоданию системы и сети, мы используем ioniceпри запуске rsync и устанавливаем --bwlimitпараметр. Например:

ionice -c2 -n7 rsync -aH --bwlimit=30000 /foo root@dest.com:/

Это действительно помогает гарантировать, что исходный сервер остается отзывчивым. Тем не менее, сервер назначения становится очень медленным из-за дискового ввода-вывода на 100% (как видно из atopутилиты).

Можно ли как-то использовать ioniceна целевом сервере тоже? Возможно через -eопцию rsync ? Я бы предпочел не запускать демон rsync, если это возможно.

Джейсон Смит
источник

Ответы:

11

Изменение команды rsync или ее включение в сценарий оболочки для включения команды / параметров ionice является опцией. Также вы можете использовать --rsync-pathопцию, которая сообщает rsync, какую команду выполнить на удаленном сервере. Нечто подобное --rsync-path="ionice -c2 -n7 rsync"будет гарантировать, что ionice работает в пункте назначения.

Добавлю, что ionice не всегда эффективен, в зависимости от конфигурации сервера. Он работает только с лифтом ввода / вывода CFQ по умолчанию . Если вы выполнили какую-либо настройку системы хранения, этот подход может быть неприменим.

Можете ли вы привести пример загрузки или помочь объяснить, как запускались системы для ресурсов во время копирования? Я хотел бы углубиться в глубину и понять, почему rsync, особенно ограниченный низкой скоростью, указанной вами в вашем примере, может вызвать столько проблем.

Что ты копируешь? Что такое настройка оборудования / ОС?

ewwhite
источник
У нас есть несколько хостов OpenVZ. Это 16-ядерные машины Xeon под управлением CentOS. Каждую ночь мы копируем все контейнеры OpenVZ на другие хосты. Поскольку наши IP-адреса маршрутизируются на все хосты, это позволяет нам быстро активировать резервный VPS в случае сбоя хоста.
Джейсон Смит
Насколько высока нагрузка? Это локальные копии? Были ли внесены какие-либо изменения в лифты ввода-вывода хранилища?
ewwhite
Из того, что я видел, ограничение пропускной способности сети не ограничивает диск io (нужно сканировать тысячи каталогов, даже если файлы не были изменены). Должен ли --bwlimit также ограничивать дисковый ввод-вывод?
Джейсон Смит
По данным atopдиска io постоянно лопается до 100%. Я не уверен, что вы подразумеваете под «лифтами ввода-вывода хранилища», поэтому я, вероятно, использую значения по умолчанию?
Джейсон Смит
2

Ваша команда rsync запускает rsyncкоманду и в удаленном месте назначения.

Попробуйте указать следующее для корневого пользователя целевого сервера .bashrc, другими словами, чтобы /root/.bashrc

alias rsync="ionice -c2 -n7 rsync"
Янне Пиккарайнен
источник
A создается ~/.bashrcтолько для интерактивных сеансов, и я не ожидаю, что установка псевдонима там изменит способ выполнения rsync.
HBruijn