Warum ist rsync -avz schneller als scp -r?

55

Ich bin ein bisschen verwirrt darüber? Warum ist rsync schneller als scp? Verwendet rsync nicht scp oder macht es etwas effizienter? Gibt es eine Möglichkeit, scp zu beschleunigen?

grm
quelle
1
Es ist eine frische Kopie.
Grm 30.09.10

Antworten:

68

Rsync ist offensichtlich schneller als scp, wenn das Ziel bereits einige der Quelldateien enthält, da rsync nur die Unterschiede kopiert. Ich vermute jedoch, dass es bei Ihrer Frage darum ging, ein leeres Ziel einfach zu kopieren.

Sie haben die -zOption an übergeben rsync. Dadurch wird die Komprimierung aktiviert. Wenn die Netzwerkbandbreite der begrenzende Faktor ist (was häufig der Fall ist), kann die Komprimierung die Übertragungsgeschwindigkeit merklich verbessern.

Sie können die Komprimierung auch aktivieren, scpindem Sie die -COption übergeben. Dies sollte dazu beitragen, die Situation mit rsync auszugleichen. Die Komprimierung ist in ssh nicht standardmäßig aktiviert, da sie Bandbreite spart, aber die Latenz und den CPU-Overhead erhöht. Die Latenz ist für interaktive Sitzungen schlecht (dies gilt nicht für scp) und der CPU-Overhead ist nutzlos, wenn die zu kopierenden Dateien bereits komprimiert sind.

Ältere Versionen rsyncverwendeten rsh anstelle von ssh als Standardtransportschicht, sodass ein fairer Vergleich zwischen rsyncund möglich wäre rcp. Seit der Veröffentlichung von 2.6.0 am 01.01.2004 ist ssh die Standardeinstellung.

Bei identischen Komprimierungseinstellungen würde ich erwarten rsyncund scpim Wesentlichen die gleiche Geschwindigkeit haben. Bitte teilen Sie Benchmarks mit, wenn Sie etwas anderes finden.

Gilles 'SO - hör auf böse zu sein'
quelle
3
Schön, dass ich mit -C meine Übertragungsgeschwindigkeit von 5 MB
am
Ich habe gerade getestet, dass für ein Verzeichnis mit 16 Dateien ca. 3-9 MB und rsync -zist immer noch viel schneller als scpmit jeder Komprimierung in diesen Antworten vorgeschlagen aktiviert. Es ist auch schneller als das manuelle Komprimieren und Archivieren in eine Datei und scpdas Speichern dieser Datei ( scpmit der Komprimierung ist es sogar noch langsamer). Die Frage des OP bleibt also eigentlich unbeantwortet: Wth ist scpso langsam im Vergleich zu rsync?
Ohcibi
12

versuchen Sie scp schnell

scp -p -C -o 'CompressionLevel 9' -o 'IPQoS throughput'  -c arcfour machine:file .

Diese Optionen beschleunigen scp in meinem Setup um das Fünffache im Vergleich zu normaler scp machine: file.

Update, 2017

Tatsächlich ist scp langsam, da TCP-Details wie MTU und Puffergröße schlecht verwaltet werden. Zum Glück wurde dies durch das HPN-SSH- Projekt behoben . Nach meinem Verständnis können Sie HPN SSH als Transport für Rsync verwenden.

Peter K
quelle
1
Super, danke !! Machen Sie dies jedoch immer scp -p(Datum / Uhrzeit beibehalten) als Standard und wahrscheinlich -r(rekursiv) scp -pr -C .... (Ich musste nur einen 40-GB-Scp-Job mit diesen schrubben und neu starten, weil ich das vergessen habe -p)
smci
Ich habe -p zum Befehl hinzugefügt, danke für einen Hinweis.
Peter K
4

Früher war es umgekehrt, aber ich glaube, dass sich die Geschwindigkeit von rsync in den letzten Überarbeitungen stark verbessert hat. Dies hängt auch davon ab, wie viele Dateien Sie kopieren. Wenn es viel ist, ist rsync normalerweise schneller, weil scp für jede Datei, die Sie kopieren, einen neuen Prozess erzeugt. Sie können versuchen, die von scp verwendete Verschlüsselung zu schwächen, um festzustellen, ob sie schneller wird. Zuletzt erinnere ich mich, dass die Arcfour-Chiffre die schnellste war.

churnd
quelle
2
Scp erzeugt nicht für jede kopierte Datei einen neuen Prozess. Sie haben einen Prozess auf der Sendeseite und einen auf der Empfangsseite, genau wie bei rsync.
Kenster
3

Für eine große Anzahl kleiner Dateien ist rysnc viel schneller als scp. Sie sagen, es ist, weil es einen geringeren Overhead hat. Für eine große Datei würde ich ähnliche Ergebnisse erwarten.

Sencer
quelle
3

Für meine Tests ist rsync schneller als scp . Sie können iotop verwenden , um sie beim Übertragen derselben Datei zu testen:

sudo iotop -o

Vielleicht erhalten Sie ein anderes Ergebnis, aber Sie können es selbst testen. Übrigens, während Sie scp verwenden , können Sie die Chiffre nicht wie folgt auswählen:

scp -c arcfour <source> <dest>

Während arcfourkann die Verschlüsselung beschleunigen.

coanor
quelle
0

Kopieren Sie Dateien erneut über vorhandene? In diesem Fall ist es wichtig, dass rsync den Vergleich blockiert und nur die Unterschiede kopiert.

Linker3000
quelle