最大化各种应用的网络传输速度


3

使用时 ncscpwget 要在专用的2Mbps链路上在2台机器之间传输文件,我的速度在0.5到1 Mbps之间。但是,当我使用时 iperf -c 10.0.1.4 -t 20 -P 12 (例如)我可以最大化链接速度(稳定2Mbps)。

有没有办法进行单流传输(例如那些完成的 scp )利用所有/大部分链接?某种tcp设置,或iptables ......?


亚历克斯,我很好奇,你问题的解决方案是什么?您是否丢失了数据包,或者您是否拆分了并行传输的文件?
Mike Pennington

Answers:


2

首先让我们承认你正在比较苹果和橘子。

ncscpwget 通常使用单个TCP套接字进行传输。但是,当你使用 iperf -P 12, 您正在使用 十二 并行TCP套接字。这是一个非平凡的区别。您拥有的并行连接越多,带宽消耗就越大。事实上, speedtest.net 使用多个并行TCP流来可靠地测量带宽容量,即使您的链路有明显的数据包丢失,可能会占用单个TCP套接字;我已经看到它们饱和1.5%的链路(这会在正常的TCP套接字上消耗吞吐量)。

次优单插槽TCP传输的主要原因是数据包丢失和延迟/抖动。您需要通过链接识别并纠正您是否有任何持续的数据包丢失...我通常使用 mtr 要么 winmtr 为了这...

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

如果你看到随着时间推移你一直丢失数据包的跳跃, 它背后的跳跃正在丢失数据包,然后你需要修复导致数据包丢失的任何问题。如果我没有立即看到问题,我通常会测量至少五到十分钟......通常是几个小时。

另一种情况是延迟......在有人能够对此做出响应之前,您需要进一步量化有关端到端延迟以及src / dest OS信息的详细信息。

所以你有一些选择......要么:

  • 找出导致你降低性能的原因
  • 将传输分解为多个文件并并行传输(以克服现在正在降低吞吐量的因素)
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.