Antworten:
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 -z
Option 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, scp
indem Sie die -C
Option ü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 rsync
verwendeten rsh anstelle von ssh als Standardtransportschicht, sodass ein fairer Vergleich zwischen rsync
und 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 rsync
und scp
im Wesentlichen die gleiche Geschwindigkeit haben. Bitte teilen Sie Benchmarks mit, wenn Sie etwas anderes finden.
rsync -z
ist immer noch viel schneller als scp
mit jeder Komprimierung in diesen Antworten vorgeschlagen aktiviert. Es ist auch schneller als das manuelle Komprimieren und Archivieren in eine Datei und scp
das Speichern dieser Datei ( scp
mit der Komprimierung ist es sogar noch langsamer). Die Frage des OP bleibt also eigentlich unbeantwortet: Wth ist scp
so langsam im Vergleich zu rsync
?
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.
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
)
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.
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 arcfour
kann die Verschlüsselung beschleunigen.
Kopieren Sie Dateien erneut über vorhandene? In diesem Fall ist es wichtig, dass rsync den Vergleich blockiert und nur die Unterschiede kopiert.