How to do iPerf tests.

TheRoDent

Cool Ideas Rep
Joined
Aug 6, 2003
Messages
5,906
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 support@cisp.co.za, 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:

sand_man

Honorary Master
Joined
Jun 4, 2005
Messages
34,764
Can one on a different ISP run iPerf to Cool Ideas iPerf servers? Or is this exclusively for trouble shooting on Cool Ideas network?
 

TheRoDent

Cool Ideas Rep
Joined
Aug 6, 2003
Messages
5,906
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.
 

sand_man

Honorary Master
Joined
Jun 4, 2005
Messages
34,764
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:

TheRoDent

Cool Ideas Rep
Joined
Aug 6, 2003
Messages
5,906
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:

DrJohnZoidberg

Honorary Master
Joined
Jul 24, 2006
Messages
22,908
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.
 
Top