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?
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.
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?
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.
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.
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.
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.
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 übergebenrsync
. 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ürscp
) 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 zwischenrsync
und möglich wärercp
. Seit der Veröffentlichung von 2.6.0 am 01.01.2004 ist ssh die Standardeinstellung.Bei identischen Komprimierungseinstellungen würde ich erwarten
rsync
undscp
im Wesentlichen die gleiche Geschwindigkeit haben. Bitte teilen Sie Benchmarks mit, wenn Sie etwas anderes finden.quelle
rsync -z
ist immer noch viel schneller alsscp
mit jeder Komprimierung in diesen Antworten vorgeschlagen aktiviert. Es ist auch schneller als das manuelle Komprimieren und Archivieren in eine Datei undscp
das Speichern dieser Datei (scp
mit der Komprimierung ist es sogar noch langsamer). Die Frage des OP bleibt also eigentlich unbeantwortet: Wth istscp
so langsam im Vergleich zursync
?versuchen Sie scp schnell
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.
quelle
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.
quelle
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.
quelle
Für meine Tests ist rsync schneller als scp . Sie können iotop verwenden , um sie beim Übertragen derselben Datei zu testen:
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:
Während
arcfour
kann die Verschlüsselung beschleunigen.quelle
Kopieren Sie Dateien erneut über vorhandene? In diesem Fall ist es wichtig, dass rsync den Vergleich blockiert und nur die Unterschiede kopiert.
quelle