Was schränkt die Leistung von scp ein?

13

Ich habe zwei Debian-Linux-Maschinen, die über 1-Gbit-LAN ​​verbunden sind. Ich kann dies mit einer rohen HTTP-Dateiübertragung messen, mit wgetder etwa 100 MB / s in beide Richtungen erreicht werden.

Wenn ich jetzt benutze scp, liegt das Maximum ohne Komprimierung bei 15 MB / s . Durch Aktivieren der Komprimierung mit dem -CFlag erhalte ich abhängig vom Inhalt bis zu 50 MB / s .

Trotzdem wird anscheinend viel Bandbreite verschwendet. Ich habe mich lange Zeit nicht darum gekümmert, bis ich wirklich über einige sehr große Logfile-Übertragungen nachdenken musste und nur gemerkt habe, wie seltsam langsam scpist. Das kann ich natürlich scpauch im Unternehmensumfeld verwenden, da die gesamte Infrastruktur dafür eingerichtet ist.

Was schränkt die Leistung von scp so ein? Ist die CPU wegen der Verschlüsselung gebunden? Wenn ich es benutze htop, scheint es, dass es keine Multicore-CPUs verwendet, nur eine von vier CPUs ist maximal.

Gibt es eine Möglichkeit, den Durchsatz zu erhöhen? Ich habe HTTP-Server und Samba zur Verfügung, aber für das Verschieben von Dateien zwischen Linux-Computern verwende ich normalerweise nur SSH. So bin ich damit aufgewachsen. Aber jetzt muss ich darüber nachdenken. Anscheinend muss ich andere Übertragungsarten für große Datenmengen in Betracht ziehen.

HTTP wird nur für bestimmte Anwendungen in PHP / Java / whatever verwendet, und Samba wird aus bestimmten Gründen verwendet, für die Windows-Computer erforderlich sind.

Kennzeichen
quelle
Die Antwort von JooMing hat für mich großartig funktioniert, aber die -CKomprimierungsoption hat sie langsamer gemacht (21 MB / s statt 112 MB / s). Also bitte aufpassen mit -C.
Mathe

Antworten:

7

Wahrscheinlich ist es die Verschlüsselung. Sie können scp mit verschiedenen Chiffren ausprobieren, zum Beispiel:

scp -c arcfour src dest

Überprüfen Sie die ssh_config-Manpage auf verfügbare Verschlüsselungen. RC4 (arcfour) ist eine schnelle Chiffre, aber wahrscheinlich nicht so sicher wie einige Alternativen.

JooMing
quelle
Es sollte beachtet werden , dass die Verwendung von RC4 ist nicht sicher und die Kommunikation kann leicht gebrochen werden.
Evan Darwin
6

Ein Teil davon hat möglicherweise mit der internen Implementierung von OpenSSH zu tun. Schauen Sie sich HPN-SSH an, um eine anständige Erklärung für einen Grund für die Engpässe und Patches für OpenSSH zu erhalten, mit denen sich das Problem beheben lässt (wenn Sie bereit sind, aus dem Quellcode heraus zu patchen und neu zu erstellen).

James Sneeringer
quelle