Приємна rsync на віддаленій машині


25

Використовуючи 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 відрізаний)

Це робота з резервного копіювання, яка зазвичай працює о 4 ранку, але коли я буваю (і виконуючи обов'язки, або використовуючи Bugzilla, розміщений на тій самій машині), це вбиває продуктивність сервера, тому я хотів швидкий "хак", щоб спробувати виправити це трохи.

Відповіді:


35

Ви можете використовувати --rsync-pathваріант, наприклад.

rsync --rsync-path="nice rsync" foo remotebox:/tmp/

15
Ви можете також розглянути можливість використання ionice , наприклад --rsync-path="ionice -c 3 nice rsync", хоча сучасні Linuxes автоматично зменшують пріоритет IO для nice'd процесів (див. Сторінку man, яку я пов’язав).
Джо Лісс

Я вже пробував це, але мій sshd все ще працює наnice 0
Феліпе Альварес

на FreeBSD, як у системах, де у вас немає ionice, налаштування цього --bwlimitваріанту добре для кращої rsync.
de020239

1
У мене також були проблеми з цим варіантом, не змінюючи жодних змін. Виявилося, що сервер, до якого я підключався, був налаштований у санкціонованих_ ключів, щоб він приймав лише конкретну команду rsync, яка переосмислювала --rsync-pathпараметр, який я вказував.
Енді Беверлі,

7
  • Беручи --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 буде пріоритетом для жорсткого диска

  • 1 -> Реальний час
  • 2 -> Найкращі зусилля
  • 3 -> Ildle (коли будь-який інший процес не використовує HD)

Зауважте, що тільки для Linux cfqпланувальник реально реалізує класи та пріоритети IO. Якщо віддалений системний адміністратор вибрав для IO планувальник noop, deadlineабо який - то більш екзотичного варіанта ви можете виявити , що на ioniceнасправді нічого не робить. Треба мати можливість отримувати високу продуктивність cfqі все-таки мати можливість використовувати класи та пріоритети вводу- виводу шляхом правильної настройки cfq .

за приємне значення для пріоритету процесора

  • -20 (найбільш сприятливий для процесу)
  • (за замовчуванням 10), якщо -n не вказано
  • 19 (найменш сприятливий для процесу)

Хто відповідає за це /etc/default/rsync? Чи читає сам rsync цей файл, чи це робиться за допомогою linux-смаку / розповсюдження?
guettli

... Я думаю, що я знайшов рішення /etc/default/rsync- це файл за замовчуванням для режиму демон rsync. Я думаю, це застосовується лише в тому випадку, якщо ви підключитесь до демона rsync через rsync-протокол. Я думаю, це не застосовується, якщо ви телефонуєте через ssh.
guettli

2

Швидким і брудним рішенням було б створити невеликий скрипт для обгортки під назвою 'rsync', який затінює $ PATH перед справжнім бінарним rsync, наприклад:

#!/bin/sh
nice -10 /path/to/proper/rsync $*

Або встановіть файл санкціонованого_кейса так, щоб він виконував встановлення 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


2

Ви можете відключити стиснення по мережі, не включаючи -zаргумент, що може заощадити деякий час процесора з обох сторін. Або змінити, як rsync використовує контрольні суми, подивіться--checksum


Я прийняв відповідь Гастуркуна (оскільки він відповів на моє запитання), але ви підказали хороший момент: я орієнтувався на стиснення проти без стиснення, і це додало лише 2 хвилини до роботи. Я просто настільки звик використовувати -avz як свої прапори, що я ніколи не думав скидати -z.
обморка

Моя звичка - використовувати -aPh, я рідко використовую -z
Rory,

0

Rsync не повинен використовувати багато процесора. Я сумніваюся, що ви можете змусити певну приємність з іншого кінця, але те, що ви можете зробити, це обмежити пропускну здатність, яку rsync використовує за допомогою брандмауера, що в кінцевому підсумку зменшить кількість обробки, яка може зробити за X кількість часу.


Додано деякий вихід з 'ps aux', щоб показати, що він робить, що стосується процесора. Я переходжу по повільному посиланню, тому ввімкнено опцію --compress, але це також спричиняє хороший доступ до диска, який я сподівався збити, використовуючи приємний (ненавмисний побічний ефект)
mwalling

Встановлення приємного значення зазвичай також впливає на приємність вводу / виводу, чого зазвичай хтось хоче.
Bram Schoenmakers

rsyncне вимагає багато процесора, але він може відображатись topвсе-таки залежно від того, чи поточне ядро ​​вважає, що введення-виведення чекають як зайняте. Крім того, якщо будь-який інший процес потребує доступу до пам’яті та rsyncйого дозволено запускати в повному темпі, всі інші процеси будуть сповільнені в результаті.
Мікко Ранталайнен

-7

Я не думаю, що для цього вам потрібне індивідуальне рішення .. використовуйте ftp


6
Знаєте, це гарна ідея. Кому потрібні всі функції rsync, такі як можливість переходити на ssh з потрібним демоном, що працює на віддаленій машині (і притаманне шифрування ssh), стиснення передачі, відновлення завантажень, лише передача відмінностей ... ось у чому все здуття. Я зараз біжу додому і використовую свій PS / 2 System 60 для FTP-аніме!
обморка

Будь-ласка, видаліть цю відповідь, оскільки вона не відповідає на запитання та пропонує альтернативу, значно гіршу, ніж приклад у питанні.
користувач1133275
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.