Maximieren Sie die Netzwerkübertragungsgeschwindigkeit verschiedener Anwendungen

Maximieren Sie die Netzwerkübertragungsgeschwindigkeit verschiedener Anwendungen

Wenn ich nc, scp, wgetzum Übertragen von Dateien zwischen 2 Rechnern über eine dedizierte 2Mbps-Verbindung verwende, erreiche ich Geschwindigkeiten zwischen 0,5 und 1 Mbps. Wenn ich jedoch iperf -c 10.0.1.4 -t 20 -P 12(zum Beispiel) verwende, kann ich die Geschwindigkeit der Verbindung maximieren (erreiche stabile 2 Mbps).

Gibt es eine Möglichkeit, einzelne Stream-Übertragungen (wie sie von durchgeführt werden scp) durchzuführen, um die gesamte/den größten Teil der Verbindung zu nutzen? Irgendeine Art von TCP-Einstellungen oder iptables...?

Antwort1

Geben wir zunächst zu, dass Sie Äpfel mit Birnen vergleichen.

ncund scpübertragen wgetnormalerweise mit einem einzigen TCP-Socket. Wenn Sie jedoch verwenden iperf -P 12, verwenden Siezwölfparallele TCP-Sockets. Dies ist eine nicht triviale Unterscheidung. Je mehr parallele Verbindungen Sie haben, desto größer ist Ihr Bandbreitenverbrauch. Tatsächlichspeedtest.netverwendet mehrere parallele TCP-Streams, um die Bandbreitenkapazität zuverlässig zu messen, selbst wenn Ihre Verbindung einen so erheblichen Paketverlust aufweist, dass ein einzelner TCP-Socket ausfallen würde. Ich habe gesehen, wie sie Verbindungen mit 1,5 % Verlust sättigten (was den Durchsatz auf einem normalen TCP-Socket dezimieren würde).

Die Hauptgründe für nicht optimale Single-Socket-TCP-Übertragungen sind Paketverlust und Verzögerung/Jitter. Sie müssen feststellen und korrigieren, ob über Ihre Verbindung fortlaufend Paketverluste auftreten... Normalerweise verwende ichmtroderwinmtrdafür...

mpenning@mpenning-T61:~$ mtr -n <destination_ip>
HOST: mpenning-T61              Loss%   Snt   Last   Avg  Best  Wrst StDev
  1. 10.239.84.1                0.0%    407    8.8   9.1   7.7  11.0   1.0
  2. 66.68.3.223                0.0%    407   11.5   9.2   7.1  11.5   1.3
  3. 66.68.0.8                  0.0%    407   19.9  16.7  11.2  21.4   3.5
  4. 72.179.205.58              0.0%    407   18.5  23.7  18.5  28.9   4.0
  5. 66.109.6.108               5.2%    407   16.6  17.3  15.5  20.7   1.5 <----
  6. 66.109.6.181               4.8%    407   18.2  19.1  16.8  23.6   2.3
  7. 4.59.32.21                 6.3%    407   20.5  26.1  19.5  68.2  14.9
  8. 4.69.145.195               6.4%    406   21.4  27.6  19.8  79.1  18.1
  9. <destination_ip>           6.8%    406   22.3  23.3  19.4  32.1   3.7

Wenn Sie einen Hop sehen, bei dem Sie im Laufe der Zeit kontinuierlich Pakete verlieren,Unddie Hops dahinter verlieren Pakete, dann müssen Sie das beheben, was diesen Paketverlust verursacht. Normalerweise messe ich mindestens fünf oder zehn Minuten lang ... oft stundenlang, wenn ich das Problem nicht sofort sehe.

Die andere Situation ist die Verzögerung. Sie müssen das Problem weiter quantifizieren, beispielsweise mit Einzelheiten zur End-to-End-Verzögerung sowie Informationen zum Quell-/Ziel-Betriebssystem, bevor jemand darauf reagieren kann.

Sie haben also einige Möglichkeiten ... entweder:

  • Finden Sie heraus, was zu Leistungseinbußen führt
  • Teilen Sie Ihre Übertragungen in mehrere Dateien auf und übertragen Sie diese parallel (um die Faktoren zu überwinden, die Ihren Durchsatz derzeit verringern).

verwandte Informationen