Miejsce docelowe rsync ionice

14

Aby uniknąć głodzenia systemu i sieci przez ionicersync, używamy go podczas uruchamiania rsync i ustawiania --bwlimitparametru. Na przykład:

ionice -c2 -n7 rsync -aH --bwlimit=30000 /foo [email protected]:/

To naprawdę pomaga upewnić się, że serwer źródłowy pozostaje responsywny. Jednak serwer docelowy staje się bardzo wolny ze względu na dysk io 100% (według atopnarzędzia).

Czy można w jakiś sposób używać również ionicena serwerze docelowym? Być może poprzez -eopcję rsync ? Wolę nie uruchamiać demona rsync, jeśli to możliwe.

Jason Smith
źródło

Odpowiedzi:

11

Zmiana komendy rsync lub zawinięcie jej do skryptu powłoki w celu włączenia komendy / parametrów ionice jest opcją. Możesz także skorzystać z --rsync-pathopcji, która mówi rsync, które polecenie wykonać na zdalnym serwerze. Coś takiego --rsync-path="ionice -c2 -n7 rsync"zapewni, że jonice będą działać w miejscu docelowym.

Dodam, że ionice nie zawsze jest skuteczny, w zależności od konfiguracji serwera. Działa tylko z domyślną windą we / wy CFQ . Jeśli wykonałeś strojenie systemu pamięci, to podejście może nie mieć zastosowania.

Czy możesz podać przykład obciążenia lub pomóc wyjaśnić, jak zaczęły się systemy dla zasobów podczas kopiowania? Chciałbym zagłębić się głębiej i dowiedzieć się, dlaczego rsync, szczególnie ograniczony do niskiego tempa wymienionego w twoim przykładzie, powoduje tyle problemów.

Co kopiujesz? Co to jest konfiguracja sprzętu / systemu operacyjnego?

ewwhite
źródło
Mamy kilka hostów OpenVZ. Są to 16-rdzeniowe maszyny Xeon z systemem CentOS. Każdej nocy kopiujemy wszystkie kontenery OpenVZ na inne hosty. Ponieważ nasze adresy IP są kierowalne do wszystkich hostów, pozwala nam to szybko aktywować zapasowe VPS na wypadek awarii hosta.
Jason Smith
Jak wysokie jest obciążenie? Czy są to kopie lokalne? Czy wprowadzono jakieś zmiany w windach we / wy pamięci masowej?
ewwhite
Z tego, co widziałem, ograniczenie przepustowości sieci nie ogranicza dysku io (tysiące katalogów należy przeskanować, nawet jeśli nie zmieniły się żadne pliki). Czy --bwlimit powinien również ograniczać dyskowe operacje wejścia / wyjścia?
Jason Smith
Według atopdysku io ciągle rośnie w 100%. Nie jestem pewien, co rozumiesz przez „windy we / wy pamięci”, więc prawdopodobnie uruchamiam ustawienia domyślne?
Jason Smith
2

Twoje polecenie rsync uruchamia także rsyncpolecenie w zdalnym miejscu docelowym.

Spróbuj umieścić następujące polecenie do użytkownika root serwera docelowego .bashrc, innymi słowy na /root/.bashrc

alias rsync="ionice -c2 -n7 rsync"
Janne Pikkarainen
źródło
~/.bashrcPochodzi tylko dla sesji interaktywnych i nie spodziewam się, że ustawienie aliasem nie będzie modyfikować jak rsync zostanie wykonany.
HBruijn,