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 -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.
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?
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 arcfourkann 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.