How to do iPerf tests.

TheRoDent

Cool Ideas Rep
Joined
Aug 6, 2003
Messages
6,722
Reaction score
3,824
Location
Johannesburg
Sometimes it's required to determine whether packet loss is the culprit for slow up or download speeds. Packet loss can cause TCP retransmissions to occur, because the data has to be retransmitted which will cause TCP to start with a slower up/download window.

This will affect performance in either the upload, or the download direction, and is typically seen on a bandwidth graph as "valleys and peaks" in a download or upload graph, as well as lower than expected speedtests etc.

1623250135783.png (example of a graph showing the valley and peak pattern)

In this case, an iPerf test to one of the Cool Ideas iPerf servers will help us to determine whether packet loss is the cause.

In order to perform an iPerf test, you will need:
  • A windows machine, and the Windows iperf client: https://files.budman.pw/iperf3.10.1_64bit.zip
  • Or, a linux machine, and the linux iperf3 client (check your distribution for installation instructions)
  • Or, a macOS machine, and the macos iperf3 client (brew install iperf3)
  • Make sure to use a cabled (Ethernet) connection to your router.
You then need to select one of the Cool Ideas iPerf servers closest to you:
  • ter-cpt-iperf-1.cisp.co.za (Cape Town)
  • ter-jhb-iperf-1.cisp.co.za (Johannesburg, Teraco)
  • is-jhb-iperf-1.cisp.co.za (Johannesburg, Rosebank)
  • tele-lon-iperf.cisp.co.za (London, UK, onnet)
  • queen.cisp.co.za (London, UK, off-net)

  1. It's generally best to use a bandwidth parameter for the test of 10Mbps, or 10Mbps less than the total capacity of your line, in the direction that you're testing. For example use 90Mbps on a 100/100 line.
  2. Make sure your line is idle and not busy with other downloads

To perform a UDP download test, open a command prompt and run the following command:

Code:
iperf3 -R -u -b 10M -O2 -t 30 -p 17001 -c ter-jhb-iperf-1.cisp.co.za

To perform a UDP upload test, run the following command:

Code:
iperf3 -u -b 10M -O2 -t 30 -p 17001 -c ter-jhb-iperf-1.cisp.co.za

The "-b 10M" parameter can be increased but generally 10Mbps should show up packet loss quite easily.
The "-c ter-jhb-iperf-1.cisp.co.za" parameter can be changed to the closest iperf server you want to test to.

A typical "clean" test, will have a final line indicating the number of lost packets, and a percentage.

e.g.

Code:
[ ID] Interval           Transfer     Bandwidth       Jitter    Lost/Total Datagrams
[  4]   0.00-10.00  sec   107 MBytes  90.0 Mbits/sec  0.326 ms  >>9<</13737 >>(0.066%)<<

A few lost packets (in this case 9 out of 13737) can be expected. When the lost packets run into the thousands or more than 1-2% there is likely a problem with your connection.

The possible causes for packet loss are:
  • A bad cable from your PC to the router.
  • A bad router.
  • A bad cable from the router to the fibre terminating unit (ONT)
  • A bad terminating unit
  • A faulty fibre line.
It is always easiest to eliminate any items you can control on your network, to try and narrow down the potential issue:
  • Replace the cable from your PC to the router.
  • Replace the cable from the router to the ONT.
  • Test directly from the ONT using your PC, bypassing the router.
  • Replace the router.
Should none of these steps resolve the issue, please log a ticket with [email protected], quoting the FULL output of your iperf results and packet loss, and we can get the relevant fibre operator to either replace the ONT, or investigate the fibre line conditions.
 
Last edited:
Would be nice if this gets sticky
 
Can one on a different ISP run iPerf to Cool Ideas iPerf servers? Or is this exclusively for trouble shooting on Cool Ideas network?
 
Can one on a different ISP run iPerf to Cool Ideas iPerf servers? Or is this exclusively for trouble shooting on Cool Ideas network?
The servers are open to the public, but obviously there could be packet loss from other other transited networks. Our iperf servers are located very close to our FNO handoff points, so they should never give packet loss on any of our Fibre operators, unless there is a line, router, or backhaul issue.

So, always better to test against a server as close as possible to your fibre line, with the least number of hops.
 
iperf3 -R -u -b 1000M -O2 -t 30 -p 17001 -c ter-jhb-iperf-1.cisp.co.za

Would this be the correct parameters testing on a gigabit line? And what sort of results would one expect?

Upload test set at 100M

[ 5] 0.00-30.09 sec 358 MBytes 99.9 Mbits/sec 0.141 ms 1/256850 (0.00039%) receiver

Download test set at 1000M

[ 5] 0.00-30.00 sec 1.08 GBytes 309 Mbits/sec 0.048 ms 1773958/2568582 (69%) receiver

These tests were conducted on your partners account btw, Afrihost Gigabit account...


Tested download set to 300M which looks to be the limit...

[ 5] 0.00-30.00 sec 1.04 GBytes 299 Mbits/sec 0.021 ms 3413/770574 (0.44%) receiver
 
Last edited:
It would be best obviously if AH had their own onnet servers, as peering connections etc could be a chokepoint, or the cause of loss.

1Gigabit of UDP is asking a lot and could even trigger DDOS protections etc :)

As long as you don't see loss at reasonable levels, e.g. 100Mbps it probably means your line is clear. If a line has consistent packet loss, even at low-ish levels normally indicates some sort of issue, which is why it's recommended to check at around 10Mbps in general to detect line issues.
 
Last edited:
The Joburg iperf servers have been down for the entire day for me. Somebody want to give them a kick in the pants?

I just get this message when trying to run it:

Code:
tim@pop-os:~$ iperf3 -R -u -b 10M -O2 -t 30 -p 17001 -c ter-jhb-iperf-1.cisp.co.za
iperf3: error - the server is busy running a test. try again later

Other servers seem to be working fine.
 
@TheRoDent

Good morning I tried running iperf test against
  • ter-cpt-iperf-1.cisp.co.za (Cape Town)
It just replies : iperf3: error - unable to connect to server: Connection refused

running against jhb ones work though.
 
Sometimes it's required to determine whether packet loss is the culprit for slow up or download speeds. Packet loss can cause TCP retransmissions to occur, because the data has to be retransmitted which will cause TCP to start with a slower up/download window.

This will affect performance in either the upload, or the download direction, and is typically seen on a bandwidth graph as "valleys and peaks" in a download or upload graph, as well as lower than expected speedtests etc.

View attachment 1085953 (example of a graph showing the valley and peak pattern)

In this case, an iPerf test to one of the Cool Ideas iPerf servers will help us to determine whether packet loss is the cause.

In order to perform an iPerf test, you will need:
  • A windows machine, and the Windows iperf client: https://files.budman.pw/iperf3.10.1_64bit.zip
  • Or, a linux machine, and the linux iperf3 client (check your distribution for installation instructions)
  • Or, a macOS machine, and the macos iperf3 client (brew install iperf3)
  • Make sure to use a cabled (Ethernet) connection to your router.
You then need to select one of the Cool Ideas iPerf servers closest to you:
  • ter-cpt-iperf-1.cisp.co.za (Cape Town)
  • ter-jhb-iperf-1.cisp.co.za (Johannesburg, Teraco)
  • is-jhb-iperf-1.cisp.co.za (Johannesburg, Rosebank)
  • tele-lon-iperf.cisp.co.za (London, UK, onnet)
  • queen.cisp.co.za (London, UK, off-net)

  1. It's generally best to use a bandwidth parameter for the test of 10Mbps, or 10Mbps less than the total capacity of your line, in the direction that you're testing. For example use 90Mbps on a 100/100 line.
  2. Make sure your line is idle and not busy with other downloads

To perform a UDP download test, open a command prompt and run the following command:

Code:
iperf3 -R -u -b 10M -O2 -t 30 -p 17001 -c ter-jhb-iperf-1.cisp.co.za

To perform a UDP upload test, run the following command:

Code:
iperf3 -u -b 10M -O2 -t 30 -p 17001 -c ter-jhb-iperf-1.cisp.co.za

The "-b 10M" parameter can be increased but generally 10Mbps should show up packet loss quite easily.
The "-c ter-jhb-iperf-1.cisp.co.za" parameter can be changed to the closest iperf server you want to test to.

A typical "clean" test, will have a final line indicating the number of lost packets, and a percentage.

e.g.

Code:
[ ID] Interval           Transfer     Bandwidth       Jitter    Lost/Total Datagrams
[  4]   0.00-10.00  sec   107 MBytes  90.0 Mbits/sec  0.326 ms  >>9<</13737 >>(0.066%)<<

A few lost packets (in this case 9 out of 13737) can be expected. When the lost packets run into the thousands or more than 1-2% there is likely a problem with your connection.

The possible causes for packet loss are:
  • A bad cable from your PC to the router.
  • A bad router.
  • A bad cable from the router to the fibre terminating unit (ONT)
  • A bad terminating unit
  • A faulty fibre line.
It is always easiest to eliminate any items you can control on your network, to try and narrow down the potential issue:
  • Replace the cable from your PC to the router.
  • Replace the cable from the router to the ONT.
  • Test directly from the ONT using your PC, bypassing the router.
  • Replace the router.
Should none of these steps resolve the issue, please log a ticket with [email protected], quoting the FULL output of your iperf results and packet loss, and we can get the relevant fibre operator to either replace the ONT, or investigate the fibre line conditions.
If i test to your London server on a RSAWEB account would this use your or RSAWEB's transit?
 
For tele-lon-iperf.cisp.co.za will probably use RSAWEB/CISP peering and then our transit.

For queen, should be full transit on RSAWeb.
 
For tele-lon-iperf.cisp.co.za will probably use RSAWEB/CISP peering and then our transit.

For queen, should be full transit on RSAWeb.
Ah thanks I don't know of any public IPERF server and work line needed to be tested. When I did it to the Lon one I got loss so needed to know if there was a potential clash with peering etc or it would have been a straight route
 
queen.cisp.co.za still open to off-net networks? want to test through a VPN but not getting a connection
 
Is there a reason why I would get slower bandwidth on iPerf than on Speediest?
Iperf 156Mbits (wifi -> mesh AP -> ethernet -> router -> ethernet -> desktop)
Speedtest from laptop 260Mbps (wifi -> mesh AP -> ethernet -> router -> modem -> internet)
Speedtest from desktop 260Mbps (ethernet -> router -> modem -> internet)

Maybe the desktop can't handle iperf?
 
Is there a reason why I would get slower bandwidth on iPerf than on Speediest?
Iperf 156Mbits (wifi -> mesh AP -> ethernet -> router -> ethernet -> desktop)
Speedtest from laptop 260Mbps (wifi -> mesh AP -> ethernet -> router -> modem -> internet)
Speedtest from desktop 260Mbps (ethernet -> router -> modem -> internet)

Maybe the desktop can't handle iperf?
Depends on which iperf test you're doing.

An iperf TCP test is single-threaded, a UDP test is full blast.

But yes, Mesh-AP is going to be bleuch.
 
@TheRoDent are the iperf servers still up ?
im trying to test for packet loss after Octotel respliced the connection coming into the ONt and replaced it.
Just hangs..
Code:
iperf3 -R -u -b 10M -O2 -t 30 -p 17001 -c ter-jhb-iperf-1.cisp.co.za

Also hangs ...
Code:
iperf3  -u -b 10M -O2 -t 30 -p 17001 -c ter-jhb-iperf-1.cisp.co.za
 
@TheRoDent are the iperf servers still up ?
im trying to test for packet loss after Octotel respliced the connection coming into the ONt and replaced it.
Just hangs..
Code:
iperf3 -R -u -b 10M -O2 -t 30 -p 17001 -c ter-jhb-iperf-1.cisp.co.za

Also hangs ...
Code:
iperf3  -u -b 10M -O2 -t 30 -p 17001 -c ter-jhb-iperf-1.cisp.co.za
Hi there, apologies for the delay, must have missed this.

It should be working now, can you test again?
 
Top
Sign up to the MyBroadband newsletter