Rsync weniger Bandbreite verbrauchen lassen?

46

Ich verwende rsync, um Netzwerkfreigaben und meinen Computer zu sichern und zu synchronisieren. Ich habe das herausgefunden.

Das Problem ist, dass bei der Verwendung von rsync zum Übertragen von Dateien die gesamte verfügbare Bandbreite verwendet wird. Ich möchte die Geschwindigkeit begrenzen, damit ich meine Verbindung für andere Dinge nutzen kann.

Konkret höre ich gerade Last.FM, aber es bleibt aus, da rsync die lokale Verbindung überlastet.

Es klingt unwahrscheinlich, aber in diesem Fall ist mein LAN wirklich so schnell wie mein Internet (10 Megabit für beide, yay Universität!). In beiden Fällen habe ich keine zusätzliche Bandbreite, während Rsync ausgeführt wird. Irgendwelche Ideen?

Übrigens, ich verwende Ubuntu 9.04.

Mike Cooper
quelle

Antworten:

67

Verwenden Sie die --bwlimit=KBPS Option, um die E / A-Bandbreite in KB pro Sekunde zu begrenzen

Siehe auch die Manpage .

DaveParillo
quelle
Perfekt. Ich weiß nicht, warum ich das auf der manSeite zum ersten Mal übersehen habe .
Mike Cooper
8
nachträglich wollte aber darauf hinweisen, dass diese Option die durchschnittliche Bandbreite begrenzt. Die erste Datei wird auf Hochtouren gesendet und nachfolgende Dateien werden gedrosselt, um zu versuchen, den angegebenen Bandbreitenwert zu erreichen. trickle
Um
1
@joshtronic Ich habe mich gefragt, ob du die Antwort von supervacuo bemerkt hast. Ich habe dies jetzt getestet und kann für die Tatsache bürgen, dass "die erste Datei auf Hochtouren gesendet wird", mit Ausnahme der kleinsten Dateien, nicht wahr ist.
20

(Dies wäre idealerweise eine Antwort auf den Kommentar von joshtronic. )

--bwlimit=XXin der Tat hat das gegenteilige Problem; Die Übertragung ist in der Tat ein gleitender Durchschnitt - wie Rsync Basics hilfreich erklärt :

Aufgrund der Art der rsync-Übertragungen werden Datenblöcke gesendet. Wenn rsync feststellt, dass die Übertragung zu schnell war, wird vor dem Senden des nächsten Datenblocks gewartet. Das Ergebnis ist eine durchschnittliche Übertragungsrate, die dem angegebenen Grenzwert entspricht.

Es ist nicht klar, ob der Durchschnitt über mehrere Dateien hinweg ermittelt wird, aber das stimmt auf jeden Fall nicht

Die erste Datei wird auf Hochtouren gesendet und nachfolgende Dateien werden gedrosselt, um zu versuchen, den angegebenen Bandbreitenwert zu erreichen

Tatsächlich wird die erste Datei gedrosselt, solange sie groß genug ist, damit die Mittelwertbildung einsetzt (was bedeutet, dass nur die kleinsten Dateien vorhanden sind).

Sie haben Recht, dass Rinnsal eine bessere Lösung wäre, aber was ich aus dem erläuternden Artikel (" Rinnsal: Ein Userland-Bandbreitenformer für Unix-ähnliche Systeme ") verstehe, ist, dass es trickle auch funktioniert, wenn E / A basierend auf einem gleitenden Übertragungsdurchschnitt verzögert werden . Ich vermute, es wird empfohlen, eine Messung mit höherer Frequenz zu verwenden, um den Durchschnitt zu ermitteln. Ich konnte online keine Daten finden, die dies bestätigen (obwohl der obige Artikel den rsyncCode als "einfach" bezeichnet, was darauf hindeutet, dass die Autoren der trickleMeinung sind, dass ihre einen besseren Job machen).

supervacuo
quelle