Ich habe zwei Debian-Linux-Maschinen, die über 1-Gbit-LAN verbunden sind. Ich kann dies mit einer rohen HTTP-Dateiübertragung messen, mit wget
der 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 -C
Flag 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 scp
ist. Das kann ich natürlich scp
auch 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.
quelle
-C
Komprimierungsoption hat sie langsamer gemacht (21 MB / s statt 112 MB / s). Also bitte aufpassen mit-C
.Antworten:
Wahrscheinlich ist es die Verschlüsselung. Sie können scp mit verschiedenen Chiffren ausprobieren, zum Beispiel:
Ü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.
quelle
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).
quelle