I've just had new broadband installed, and wanted to test its throughput using iperf3. However it appears to be giving considerably different results than more conventional speed tests.
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
Whereas online speed tests show the expected results of ~150 Mbits
3.testdebit.info has been tested from azure and is consistently around 330Mbits (though who knows what that means any more!)
I have tried various different servers, including a linux box hosted on azure - that delivers ~100Mbits to another azure box. This was also performed on port 80, to rule out any ISP throttling. All of those results are comparable.
Downloading a 3.5gb file in 210 seconds, works out to approximately 130Mbit
Can anyone shed any light on why iperf3 might be so low (or am I being really stupid and reading something wrong!)
These are all on the same computer, over ethernet so no wireless etc to get in the way.
edited to add
Performing the same test with iperf2 (on windows client (iPerf 2.0.5-3) and ubuntu (iperf version 2.0.5)) gives these results
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
The same performed from a linux based 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
And with the -R flag
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
To ensure it isn't a server issue, I have upgraded the azure VM to a size that now pulls 600Mbit up / 1Gbit down from the 3.testdebit.info server
In response to John Looker's answer
My main purpose of the question was trying to understand why iperf was giving such varied results. I understand that uploads are heavily shared, and aren't too concerned with that (or at least its a different question!)
The Azure servers I was using were in North and West Europe (Amsterdam and Ireland I believe) and with an online speedtest achieved in the area of 240Mb/s
It does however appear that multithreading was the issue, I have just rerun the test, using four threads instead of the default one -
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