При использовании 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="ionice -c 3 nice rsync"
, хотя современные Linux автоматически уменьшают приоритет ввода-вывода для процессов nice'd (см. Справочную страницу, на которую я ссылался).nice 0
ionice
, установка--bwlimit
опции хороша для более приятного rsync.--rsync-path
указанную мной опцию.--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
планировщик действительно реализует классы и приоритеты ввода-вывода. Если удаленный системный администратор выбрал для IO планировщикnoop
,deadline
или какой - то более экзотического варианта вы можете обнаружить , что наionice
самом деле ничего не делает. Нужно быть в состоянии получить высокую производительностьcfq
и все еще иметь возможность использовать классы и приоритеты ввода-вывода, правильно настроив cfq .для хорошего значения для приоритета процессора
источник
/etc/default/rsync
? Читает ли этот файл сам rsync, или это делает linux-flavour / distribution?/etc/default/rsync
- файл по умолчанию для режима демона rsync. Я предполагаю, что это применимо, только если вы подключаетесь к демону rsync по протоколу rsync. Я думаю, это не относится, если вы звоните через ssh.Быстрое и грязное решение состоит в том, чтобы создать небольшой скрипт-обертку с именем 'rsync', который затеняет $ PATH до реального двоичного файла rsync, например:
Или настройте файл authorized_keys так, чтобы он выполнял обработку rsync. (Предполагая, что вы используете ключи SSH).
пример:
Теперь в вашем /home/user/bin/nice-rsync.sh
НТН
источник
Вы можете отключить сжатие по сети, не включая
-z
аргумент, который может сэкономить некоторое время процессора с обеих сторон. Или измените, как rsync использует контрольные суммы, посмотрите на--checksum
источник
Rsync не должен сильно загружать процессор. Я сомневаюсь, что вы можете навязать определенную привлекательность с другого конца, но то, что вы могли бы сделать, это ограничить полосу пропускания, которую rsync использует с брандмауэром, что в конечном итоге уменьшит объем обработки, которую он может выполнить за X времени.
источник
rsync
не требует много ресурсов ЦП, но,top
тем не менее, может появиться в зависимости от того, считает ли текущее ядро ожидание ввода-вывода как загруженное. Кроме того, если какой-либо другой процесс должен получить доступ к хранилищу иrsync
ему разрешено работать с полной скоростью, в результате все другие процессы будут замедлены.Я так не думаю, вам нужно индивидуальное решение для этого .. используйте FTP
источник