Frage Nizza rsync auf Remote-Maschine


Wenn Sie rsync + ssh für den Zugriff auf einen Remote-Computer verwenden, gibt es eine Möglichkeit, den rsync-Prozess auf dem Remote-Computer "netter" zu machen (um seine Priorität zu verringern)?

Bearbeiten der Frage zur Klärung:

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-Leitung abgeschnitten)

Dies ist ein Backup-Cron-Job, der normalerweise um 4 Uhr morgens läuft, aber wenn ich wach bin (und Commit oder die Verwendung von Bugzilla auf demselben Rechner), wird die Server-Performance beeinträchtigt, also wollte ich einen schnellen "Hack" versuchen und beheben es ein bisschen.


23
2017-08-18 14:20


Ursprung




Antworten:


Du kannst den ... benutzen --rsync-path Option, z.

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

34
2017-08-18 14:52



Sie könnten in Betracht ziehen ionice ebenso, z.B. --rsync-path="ionice -c 3 nice rsync"obwohl moderne Linuxes automatisch die IO-Priorität für nette Prozesse reduzieren (siehe die man-Seite, die ich verlinkt habe). - Jo Liss
Das habe ich schon probiert, aber mein sshd läuft immer noch nice 0 - Felipe Alvarez
auf FreeBSD-ähnlichen Systemen, die Sie nicht haben ioniceEinstellung der --bwlimit Option ist gut für ein netter rsync. - deed02392
Ich hatte auch ein Problem mit dieser Option, die keinen Unterschied machte. Es stellte sich heraus, dass der Server, mit dem ich mich verband, in authorized_keys so konfiguriert war, dass er nur einen bestimmten rsync-Befehl akzeptierte, der den Befehl überschrieb --rsync-path Option, die ich angegeben habe. - Andy Beverley


  • Nehmen die --rsyncpath-Option du hast rsync --rsync-path="ionice -c 3 nice -n 12 rsync" localDirectory remoteHost:/tmp/
  • Nehmen die Konfigurationsdateioption Sie können die Datei ändern oder auskommentieren /etc/default/rsync das RSYNC_NICE='17' Wert und die RSYNC_IONICE='-c3' Wert

Für beide ionice Wert wird für Festplatten Priorität sein

  • 1 -> Echtzeit
  • 2 -> Beste Leistung
  • 3 -> Ildle (wenn kein anderer Prozess die HD benutzt)

zum nett Wert für Prozessorpriorität

  • -20 (am günstigsten für den Prozess)
  • (Standard 10) wenn -n nicht angegeben ist
  • 19 (am wenigsten günstig für den Prozess)

7
2017-10-08 10:03



Wer ist dafür verantwortlich? /etc/default/rsync? Liest rsync selbst diese Datei oder macht das die linux-flavour / distribution? - guettli
... ich denke, ich habe die Lösung gefunden /etc/default/rsync ist die Standarddatei für den rsync-Daemon-Modus. Ich denke, es gilt nur, wenn Sie eine Verbindung zum rsync-Daemon über Rsync-Protokoll herstellen. Ich denke, es gilt nicht, wenn Sie es über ssh aufrufen. - guettli


Eine schnelle und schmutzige Lösung wäre, ein kleines Wrapper-Skript namens 'rsync' zu erstellen, das den $ PATH vor einer echten rsync-Binärdatei wie folgt schattiert:

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

Oder richten Sie die Datei authorized_keys so ein, dass sie rsync ausführt. (Angenommen, Sie verwenden SSH-Schlüssel).

Beispiel:

command=”/home/user/bin/nice-rsync.sh" ssh-dss asdf....

Jetzt in Ihrem /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
2017-08-18 14:43





Sie können die Komprimierung über das Netzwerk deaktivieren, indem Sie die -z Argument, das auf beiden Seiten etwas CPU-Zeit sparen könnte. Oder ändern Sie, wie rsync Prüfsummen verwendet --checksum


2
2017-08-18 15:26



Ich habe Hasturkuns Antwort akzeptiert (da sie meine Frage beantwortet hat), aber Sie haben einen guten Punkt angesprochen: Ich habe Benchmarks mit Kompression vs ohne Komprimierung durchgeführt und es hat dem Job nur 2 Minuten hinzugefügt. Ich habe mich so daran gewöhnt, -avz als meine Flags zu benutzen, dass ich nie daran gedacht hätte, -z zu fallen. - mwalling
Meine Gewohnheit ist-aPh, ich verwende selten -z - Rory


Rsync sollte nicht viel CPU verwenden. Ich bezweifle, dass Sie eine gewisse Nettigkeit von der anderen Seite erzwingen können, aber was Sie tun könnten, ist die Bandbreite zu begrenzen, die rsync mit einer Firewall verwendet, was letztendlich die Verarbeitungszeit in X reduzieren würde.


0
2017-08-18 14:27



Einige Ausgaben von 'ps aux' hinzugefügt, um zu zeigen, was es in Bezug auf die CPU macht. Ich gehe über eine langsame Verbindung, also habe ich die Option --compress eingeschaltet, aber es verursacht auch eine gute Menge an Festplattenzugriff, was ich mit Hilfe von netten (unbeabsichtigten Nebeneffekten) verhindern wollte. - mwalling
Wenn Sie einen netten Wert festlegen, wirkt sich dies in der Regel auch auf die E / A-Benutzerfreundlichkeit aus, die normalerweise von jemandem gewünscht wird. - Bram Schoenmakers


Ich denke nicht, Sie brauchen eine benutzerdefinierte Lösung für das .. Verwenden Sie ftp


-7
2017-08-18 14:41



Weißt du, das ist eine gute Idee. Wer braucht alle Funktionen von rsync wie in der Lage sein über ssh ohne einen Daemon laufen auf dem Remote-Rechner laufen zu lassen (und die inhärente Verschlüsselung von ssh), Transfer-Komprimierung, Fortsetzen von Downloads, nur die Unterschiede übertragen ... das ist alles Feature aufblasen. Ich werde jetzt sofort nach Hause rennen und mein PS / 2 System 60 benutzen, um ein paar Anime zu fristen! - mwalling
Bitte löschen Sie diese Antwort, da sie die Frage nicht beantwortet und eine Alternative bietet, die deutlich schlechter ist als das Beispiel in der Frage. - user1133275