tl; dr Über langsame Übertragungsverbindungen komprimieren, sonst nicht. Unten finden Sie einen Test der Kompressionsgeschwindigkeit, einen Link zu einem Tool zur Bandbreitenumwandlung und einige Informationen.
Die Komprimierung mit rsync
beschleunigt die Arbeit nur, wenn die Zwischenverbindung "langsam genug" ist, dh wenn die Maschine an einem Ende in der Lage ist, einen komprimierten Datenstrom schnell genug zu erzeugen, um die Kommunikationsverbindung zu sättigen.
Also, was ist die langsamste Verbindung, bei der ich die Komprimierung verwenden sollte, um etwas zu erreichen?
Das Folgende ist ein sehr unwissenschaftlicher Test, der zeigt, wie schnell gzip
Daten erzeugt werden können und was dies für die allgemeine Komprimierung Ihrer Netzwerk-Massentransfers bedeutet.
Die Eingabedaten ändern das Ergebnis des Tests erheblich . Ich verwende eine unkomprimierte (!) Reguläre Datei auf meinem Computer, die für die Art von Daten repräsentativ sein kann, die ich normalerweise über Netzwerke übertrage. Das Verwenden /dev/zero
(Erzeugen von unbegrenzten Nullen) wäre irreführend, da ein Strom von Nullen sehr leicht zu komprimieren wäre, und das Verwenden /dev/random
wäre aus dem entgegengesetzten Grund irreführend. Also verwende ich stattdessen eine tar-Datei meines $HOME/local
Verzeichnisses, die Software enthält, die ich in meinem installiert habe $HOME
. Die Datei ist an sich nicht komprimiert, enthält jedoch eine Mischung aus Binärdateien, kleinen komprimierten Dateien und Quell- / Textdateien. Würde ich sie mit der Standardeinstellung komprimieren gzip
, würde sie um 67% von 64 MiB auf 22 MiB schrumpfen.
$ gzip -c local.tar | dd of=/dev/null
43092+4 records in
43093+1 records out
22063854 bytes transferred in 2.819 secs (7825741 bytes/sec)
Ich mache das ein paar Mal, um ein Gefühl dafür zu bekommen, wie hoch der Durchschnitt sein könnte, und es sind ungefähr 7800000 Bytes / s.
Dann verwende ich einen Netzwerkbandbreitenrechner, um zu sehen, in was dies konvertiert. In diesem speziellen Fall liegt die Kapazität einer verkabelten "100-MB-Ethernet" -Verbindung knapp unter der einer Internet-Uplink-Verbindung mit "VDSL-Download", die etwas schneller ist als eine drahtlose "802.11 [a / g]" -Verbindung und liegt irgendwo Zwischen "Bluetooth v3.0" (langsamer) und "USB 2.0" (schneller).
Dies bedeutet, dass die Komprimierung die Übertragung der Datei verlangsamt , wenn ich eine schnellere Komprimierung verwende.
rsync
möglicherweise nicht über die Verwendung sein exakt gleichen Bibliotheken wie gzip
Kompression zu tun, aber die oben Sie zumindest ein wenig eine Andeutung geben würde.
rsync
Wie Sie wissen, ist dies jedoch mehr als nur eine Komprimierung, und der eigentliche Geschwindigkeitszuwachs beruht darauf, dass nur [Bits von] Dateien übertragen werden, die sich geändert haben.
Nach meiner eigenen Erfahrung ist die Verwendung von Komprimierung mit rsync
in den letzten 10 Jahren immer weniger vorteilhaft geworden, da sich die Bandbreite der Netzwerke erhöht hat (wo ich mich gerade befinde).
Für inkrementelle Backups würde ich definitiv empfehlen, die --link-dest
Option zu untersuchen (dies hat nichts mit dem zu tun, was übertragen wird, sondern nur damit, wie Dinge auf dem Ziel gespeichert werden). Wenn Sie dies über SSH tun, verwenden Sie die Komprimierung nicht, wenn Ihre SSH-Verbindung bereits komprimiert ist, und komprimieren Sie aus den gleichen Gründen wie oben nur SSH-Verbindungen (Tunnel usw.), die über langsame Verbindungen laufen.