Warum ist rsync -avz schneller als scp -r?

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

 60
Author: studiohack, 2010-09-29

6 answers

Rsync ist offensichtlich schneller als scp, wenn das Ziel bereits einige der Quelldateien enthält, da rsync nur die Unterschiede kopiert. Aber ich vermute, in Ihrer Frage ging es darum, eine einfache Kopie auf ein leeres Ziel zu kopieren.

Sie haben die Option -z an rsync übergeben; Dies aktiviert die Komprimierung. Wenn die Netzwerkbandbreite der limitierende Faktor ist (dies ist häufig der Fall), kann die Komprimierung die Übertragungsgeschwindigkeit um einen spürbaren Betrag verbessern.

Sie können die Komprimierung auch aktivieren mit scp durch Übergeben der Option -C. Dies sollte mit rsync ausgeglichen werden. Die Komprimierung ist in ssh standardmäßig nicht aktiviert, da sie Bandbreite spart, aber Latenz und CPU-Overhead hinzufügt. Latenz ist schlecht für interaktive Sitzungen (dies gilt nicht für scp), und der CPU-Overhead ist nutzlos, wenn die Dateien, die Sie kopieren, bereits komprimiert sind.

Ältere Versionen von rsync verwendeten rsh anstelle von ssh als Standardtransportschicht, sodass ein fairer Vergleich zwischen rsync und rcp. Aber ssh ist seit 2.6.0, das am 01.01.2004 veröffentlicht wurde, der Standard.

Bei identischen Komprimierungseinstellungen würde ich erwarten, dass rsync und scp im Wesentlichen die gleiche Geschwindigkeit haben. Bitte teilen Sie Benchmarks, wenn Sie etwas anderes finden.

 79
Author: Gilles 'SO- stop being evil',
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2017-07-10 09:36:03

Probiere scp schnell aus

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

Diese Optionen beschleunigen scp 5 mal in meinem Setup im Vergleich zu einfachen scp machine: file .

Update, 2017

Tatsächlich ist scp aufgrund der schlechten Verwaltung von TCP-Details wie MTU und Puffergröße langsam. Glücklicherweise wurde dies durch das Projekt HPN SSH behoben. Nach meinem Verständnis können Sie HPN SSH als Transport für rsync verwenden.

 16
Author: Peter K,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2018-02-21 11:30:46

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

 4
Author: churnd,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2010-09-29 11:36:44

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

 3
Author: sencer,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2012-12-17 20:06:28

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 bekommst du ein anderes Ergebnis, aber du kannst sie selbst testen. BTW, während der Verwendung von scp - , tun nicht foget zu wählen, dessen Chiffre von:

scp -c arcfour <source> <dest>

Während arcfour die Verschlüsselung beschleunigen kann.

 3
Author: coanor,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2013-04-05 04:21:26

Kopieren Sie Dateien erneut über vorhandene? Wenn ja, ist die Fähigkeit von rsync, Vergleiche zu blockieren und nur die Unterschiede zu kopieren, relevant.

 0
Author: Linker3000,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2010-09-29 11:45:17