iperf 给出不正确的结果

Mic*_*l B 3 networking performance iperf

我刚刚安装了新的宽带,并想使用 iperf3 测试其吞吐量。然而,它给出的结果似乎与更传统的速度测试有很大不同。

E:\tmp> iperf3 -c 3.testdebit.info
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval           Transfer     Bandwidth
[  4]   0.00-10.01  sec  13.1 MBytes  11.0 Mbits/sec                  sender
[  4]   0.00-10.01  sec  13.1 MBytes  11.0 Mbits/sec                  receiver
Run Code Online (Sandbox Code Playgroud)

而在线速度测试显示预期结果约为 150 Mbits

3.testdebit.info 已经从 azure 进行了测试,始终在 330Mbits 左右(尽管谁知道这意味着什么!)

我尝试过各种不同的服务器,包括托管在 azure 上的 Linux 盒子,它向另一个 azure 盒子提供约 100Mbits 的服务。这也在端口 80 上执行,以排除任何 ISP 限制。所有这些结果都是可比的。

在 210 秒内下载一个 3.5GB 的文件,计算出大约 130Mbit

任何人都可以解释为什么 iperf3 可能如此低(或者我真的很愚蠢并且读错了东西!)

这些都在同一台计算机上,通过以太网传输,因此没有无线等干扰。

编辑添加

使用 iperf2(在 Windows 客户端 (iPerf 2.0.5-3) 和 ubuntu(iperf 版本 2.0.5)上)执行相同的测试给出以下结果

E:\tmp\iperf2> iperf -c <hidden>.cloudapp.net -p 5201
------------------------------------------------------------
Client connecting to <hidden>.cloudapp.net, TCP port 5201
TCP window size: 63.0 KByte (default)
------------------------------------------------------------
[  3] local 192.168.0.2 port 51816 connected with <hidden> port 5201
[ ID] Interval       Transfer     Bandwidth
[  3]  0.0-10.1 sec  12.1 MBytes  10.0 Mbits/sec
Run Code Online (Sandbox Code Playgroud)

在基于 Linux 的 NAS 上执行相同的操作

Nas:~# iperf3 -c 3.testdebit.info
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval           Transfer     Bandwidth       Retr
[  4]   0.00-10.00  sec  14.5 MBytes  12.2 Mbits/sec    0             sender
[  4]   0.00-10.00  sec  14.5 MBytes  12.2 Mbits/sec                  receiver
Run Code Online (Sandbox Code Playgroud)

并带有 -R 标志

E:\tmp> iperf3 -c 3.testdebit.info -R
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval           Transfer     Bandwidth       Retr
[  4]   0.00-10.00  sec  58.0 MBytes  48.6 Mbits/sec    0             sender
[  4]   0.00-10.00  sec  57.0 MBytes  47.8 Mbits/sec                  receiver
Run Code Online (Sandbox Code Playgroud)

为了确保这不是服务器问题,我已将 azure VM 升级到现在可以从 3.testdebit.info 服务器上拉 600Mbit / 拉下 1Gbit 的大小

回应约翰·卢克的回答

我这个问题的主要目的是试图理解为什么 iperf 给出如此不同的结果。我知道上传内容被大量共享,并且不太关心这一点(或者至少这是一个不同的问题!)

我使用的 Azure 服务器位于北欧和西欧(我认为是阿姆斯特丹和爱尔兰),在线速度测试达到了 240Mb/s

然而,似乎多线程是问题所在,我刚刚重新运行测试,使用四个线程而不是默认线程 -

E:\tmp>iperf3 -c 3.testdebit.info -R -P 5
Connecting to host 3.testdebit.info, port 5201
Reverse mode, remote host 3.testdebit.info is sending
- - - - - - - - - - - - - - - - - - - - - - - - -
[SUM]   0.00-10.00  sec   195 MBytes   163 Mbits/sec   50             sender
[SUM]   0.00-10.00  sec   190 MBytes   160 Mbits/sec                  receiver
Run Code Online (Sandbox Code Playgroud)

Spi*_*iff 5

请注意,IPerf 默认为“上传”测试:IPerf 客户端 ( -c)将 TCP 数据发送到 IPerf 服务器 ( -s)。看起来您正在 LAN 上运行客户端并连接到公共 Internet 上托管的 IPerf 服务器,因此您正在测试新宽带连接的上传速度,而不是下载速度。

-s要测试其下载速度,请反转您作为/调用的一端-c,或使用-r来指定您希望它在执行正常测试后进行“反向”(下载)测试。

请注意,如果您的 LAN 计算机位于 NAT 或防火墙后面,您可能必须适当地打开/映射/转发端口才能使下载测试正常进行。