rsync ionice destination

14

Um zu vermeiden, dass Rsync das System und das Netzwerk aushungert, verwenden wir ionicebeim Starten von Rsync und beim Festlegen der --bwlimitParameter. Beispielsweise:

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

Dies trägt in der Tat dazu bei, dass der Quellserver weiterhin reagiert. Der Zielserver wird jedoch sehr langsam, da der Datenträger zu 100% ausgelastet ist (aus Sicht deratop Dienstprogramm angezeigt).

Kann man das irgendwie auch ioniceauf dem Zielserver nutzen? Vielleicht über die -eOption rsync ? Ich würde es vorziehen, den rsync-Daemon nach Möglichkeit nicht auszuführen.

Jason Smith
quelle

Antworten:

11

Das Ändern des Befehls rsync oder das Einschließen des Befehls / der Parameter ionice in ein Shell-Skript ist eine Option. Sie können auch die --rsync-pathOption nutzen, die rsync mitteilt, welcher Befehl auf dem Remote-Server ausgeführt werden soll. Etwas wie--rsync-path="ionice -c2 -n7 rsync" wird dafür sorgen, dass ionice auf dem Ziel läuft.

Ich werde hinzufügen, dass ionice abhängig von der Serverkonfiguration nicht immer effektiv ist. Es funktioniert nur mit dem standardmäßigen CFQ-E / A-Aufzug . Wenn Sie das Speichersystem optimiert haben, ist dieser Ansatz möglicherweise nicht anwendbar.

Können Sie ein Beispiel für die Belastung geben oder erklären, wie die Systeme während des Kopiervorgangs für Ressourcen gestartet wurden? Ich würde eher tiefer gehen und herausfinden, warum ein Rsync-Vorgang, der sich insbesondere auf die niedrige Rate beschränkt, die Sie in Ihrem Beispiel angegeben haben, so viel Ärger verursachen würde.

Was kopierst du? Wie ist das Hardware / Betriebssystem-Setup?

ewwhite
quelle
Wir haben mehrere OpenVZ-Hosts. Hierbei handelt es sich um 16-Core-Xeon-Computer, auf denen CentOS ausgeführt wird. Jede Nacht kopieren wir alle OpenVZ-Container auf einen anderen Host. Da unsere IP-Adressen an alle Hosts weitergeleitet werden können, können wir einen Backup-VPS schnell aktivieren, falls ein Host ausfällt.
Jason Smith
Wie hoch wird die Ladung? Handelt es sich um lokale Kopien? Wurden Änderungen an den Speicher-E / A-Aufzügen vorgenommen?
Ewwhite
Nach dem, was ich gesehen habe, beschränkt das Begrenzen der Netzwerkbandbreite nicht die Festplattenkapazität (Tausende von Verzeichnissen müssen gescannt werden, auch wenn sich keine Dateien geändert haben). Sollte --bwlimit auch die Festplatten-E / A begrenzen?
Jason Smith
Laut atopder Festplatte platzt io ständig zu 100%. Ich bin mir nicht sicher, was Sie unter "Speicher-E / A-Aufzügen" verstehen, daher verwende ich wahrscheinlich die Standardeinstellungen.
Jason Smith
2

Ihr Befehl rsync startet den rsyncBefehl auch am Remote-Ziel.

Versuchen Sie, Ihrem Zielserver-Root-Benutzer .bashrc Folgendes zuzuweisen, mit anderen Worten to /root/.bashrc

alias rsync="ionice -c2 -n7 rsync"
Janne Pikkarainen
quelle
A ~/.bashrcwird nur für interaktive Sitzungen verwendet, und ich erwarte nicht, dass das Festlegen eines Alias ​​die Ausführung von rsync ändert.
HBruijn