При использовании rsync + ssh для доступа к удаленному компьютеру, есть ли способ "улучшить" процесс rsync на удаленном компьютере (снизить его приоритет)?
Редактируем вопрос для уточнения:
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
backups 16651 86.2 0.1 3576 1636 ? Rs 11:06 0:06 rsync --ser...
(строка rsync обрезана)
Это задание резервного копирования cron, которое обычно выполняется в 4 часа ночи, но когда я просыпаюсь (и фиксирую или использую Bugzilla, размещенную на той же машине), это снижает производительность сервера, поэтому я хотел быстро «взломать», чтобы попытаться исправить это немного.
Вы можете использовать --rsync-path
вариант, например.
rsync --rsync-path="nice rsync" foo remotebox:/tmp/
--rsync-path
вариант у тебя есть rsync --rsync-path="ionice -c 3 nice -n 12 rsync" localDirectory remoteHost:/tmp/
/etc/default/rsync
в RSYNC_NICE='17'
ценность и RSYNC_IONICE='-c3'
стоимостьДля обоих ionice значение будет для приоритета жесткого диска
Обратите внимание, что только для Linux cfq
Планировщик действительно реализует классы и приоритеты ввода-вывода. Если удаленный системный администратор выбрал планировщик ввода-вывода noop
, deadline
или какой-то более экзотический вариант, вы можете обнаружить, что ionice
действительно ничего не делает. Должна быть возможность получить высокую производительность от cfq
и по-прежнему иметь возможность использовать классы и приоритеты ввода-вывода, настройка cfq правильно.
для отлично значение приоритета процессора
Вы можете отключить сжатие по сети, не включая -z
аргумент, который может сэкономить время процессора с обеих сторон. Или измените способ использования контрольных сумм rsync, посмотрите --checksum
Быстрое и грязное решение - создать небольшой сценарий-оболочку под названием 'rsync', который затеняет $ PATH перед реальным двоичным файлом rsync, например:
#!/bin/sh
nice -10 /path/to/proper/rsync $*
Или настройте файл authorized_keys так, чтобы он выполнял синхронизацию rsync. (Предполагая, что вы используете ключи ssh).
пример:
command=”/home/user/bin/nice-rsync.sh" ssh-dss asdf....
Теперь в вашем /home/user/bin/nice-rsync.sh
#!/bin/sh
case $SSH_ORIGINAL_COMMAND in
rsync\ --server*)
nice -10 $SSH_ORIGINAL_COMMAND
;;
*)
$SSH_ORIGINAL_COMMAND
;;
esac
HTH
Rsync не должен использовать много ЦП. Я сомневаюсь, что вы можете добиться определенной аккуратности с другого конца, но что вы могли бы сделать, так это ограничить полосу пропускания, которую rsync использует с брандмауэром, что в конечном итоге уменьшит объем обработки, который он может выполнить за X времени.
Я так не думаю, вам нужно специальное решение для этого .. используйте ftp