Czy podczas korzystania z rsync + ssh w celu uzyskania dostępu do zdalnego komputera istnieje sposób „miłego” procesu rsync na zdalnym komputerze (aby obniżyć jego priorytet)?
Edycja pytania w celu wyjaśnienia:
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...
(linia rsync została wycięta)
Jest to zadanie kopii zapasowej crona, które normalnie działa o 4 rano, ale kiedy się obudziłem (i popełniałem błąd lub korzystałem z Bugzilli hostowanej na tej samej maszynie), zabija ono wydajność serwera, więc chciałem szybko „zhakować”, aby spróbować naprawić to trochę.
--rsync-path="ionice -c 3 nice rsync"
Chociaż nowoczesne Linuxy automatycznie zmniejszają priorytet IO dla ładnych procesów (zobacz stronę podręcznika, którą podłączyłem).nice 0
ionice
, ustawienie tej--bwlimit
opcji jest dobre dla ładniejszego rsync.--rsync-path
przeze mnie opcję.--rsync-path
opcję, którą maszrsync --rsync-path="ionice -c 3 nice -n 12 rsync" localDirectory remoteHost:/tmp/
/etc/default/rsync
naRSYNC_NICE='17'
wartość iRSYNC_IONICE='-c3'
wartośćZarówno wartość jonice będzie miała priorytet dla twardego dysku
Zauważ, że w przypadku Linuksa tylko
cfq
harmonogram tak naprawdę implementuje klasy IO i priorytety. Jeśli zdalny administrator systemu zdecydował się na IO schedulernoop
,deadline
albo jakiś bardziej egzotyczny wariant może się okazać, żeionice
tak naprawdę nic nie robi. Trzeba być w stanie uzyskać wysoką wydajnośćcfq
i nadal być w stanie korzystać z klas IO i priorytetów poprzez prawidłowe dostrojenie cfq .za niezłą wartość dla priorytetu procesora
źródło
/etc/default/rsync
? Czy samo rsync czyta ten plik, czy też robi to linux-flavour / Distribution?/etc/default/rsync
jest plik domyślny dla trybu demona rsync. Wydaje mi się, że dotyczy to tylko połączenia z demonem rsync za pomocą protokołu rsync. Myślę, że nie dotyczy to połączenia przez ssh.Szybkim i brudnym rozwiązaniem byłoby utworzenie małego skryptu otoki o nazwie „rsync”, który przesłania $ PATH przed prawdziwym plikiem binarnym rsync, takim jak:
Lub skonfiguruj plik author_keys, aby wykonywał nicowanie rsync. (Zakładając, że używasz kluczy ssh).
przykład:
Teraz w twoim /home/user/bin/nice-rsync.sh
HTH
źródło
Możesz wyłączyć kompresję w sieci, nie dołączając
-z
argumentu, co może zaoszczędzić trochę czasu procesora po obu stronach. Lub zmień sposób, w jaki rsync używa sum kontrolnych, spójrz na--checksum
źródło
Rsync nie powinien zużywać dużo procesora. Wątpię, czy możesz wymusić pewną uprzejmość z drugiego końca, ale to, co możesz zrobić, to ograniczyć przepustowość, którą rsync używa z zaporą ogniową, co ostatecznie zmniejszy ilość przetwarzania, którą może wykonać w X czasie.
źródło
rsync
nie wymaga dużo procesora, ale może siętop
jednak pojawić w zależności od tego, czy bieżące jądro uzna, że operacje we / wy są zajęte. Ponadto, jeśli jakikolwiek inny proces musi uzyskać dostęp do pamięci irsync
może działać w pełnym tempie, wszystkie inne procesy zostaną spowolnione.Nie sądzę, potrzebujesz do tego niestandardowego rozwiązania ... użyj ftp
źródło