Test your Atomic Fibre Line Health with iPerf #
We host an iPerf server on our network for Atomic customers, so if you have a laptop plugged into your Fibre ONT/CPE the only thing between your device and the iPerf server is your Fibre Network Operator. If the iPerf tests show packet loss, we can ask the Fibre Network to investigate.
Slow International with Fast Local Speeds #
When you see slow international speeds while getting fast local speeds, it can be a packet loss problem. Small amounts of packet loss (1%) on your fibre line, will have a big impact on international speeds with higher latency (140ms+), while local speeds with low latency will be fast. The best way to detect this is with an 80% UDP test. See below.
✅ Before proceeding please keep in mind this is advanced troubleshooting, and requires tests to be run through your command prompt.
✅ These tests are only for Atomic Access customers. If your ISP doesn’t have clear steps to test for packet loss, please consider switching to Atomic so we can help.
✅ Make sure you run these tests with a laptop/PC connected directly into the Fibre ONT/CPE, with a Cat5 or Cat6 Ethernet cable and make sure the laptop has a Gigabit Ethernet port. For Openserve customers, you can test in the router or configure PPPoE on the laptop Ethernet port.
How to Install iPerf #
Install iPerf3 on a laptop or PC, version 3.9 or newer.
- macOS:
- Install homebrew – https://brew.sh/
- Install iPerf via homebrew – https://formulae.brew.sh/formula/iperf3
- Linux: there should be an ‘iperf3’ binary package for your distribution
- Windows (64-bit):
- Install a recent version of iPerf: https://github.com/ar51an/iperf3-win-builds
- Or use an older version: https://www.atomic.co.za/wp-content/uploads/iperf3.9_64.zip
- Open “Command Prompt”
cd
into the folder where you downloaded or saved the iPerf package e.g.cd C:\Users\YourUsername\Downloads
- Run the iPerf commands below, but replace
iperf3
withiperf3.exe
- Windows Subsystem for Linux (WSL): depending on Linux distribution, install ‘iperf3’ package
80% UDP Test – Detect Packet Loss Under Load #
iperf3 -4 -V -t 30 -O 3 -u -b 80M -R -c iperf.atomic.ac -p 3334
iperf3 -4 -V -t 30 -O 3 -u -b 80M -l 1440 -R -c iperf.atomic.ac -p 3334
(for Frogfoot / Calix)
Change ‘-b’ parameter to 80% of your line download speed. To be extra sure you can also run this test in the upload direction by removing the ‘-R’ flag and set ‘-b’ to 80% of your line upload speed.
For Openserve (PPPoE) we suggest 70% of line speed.
For Frogfoot and Vumatel Calix ONTs, please add ‘-l 1440’.
What to Expect #
The iPerf UDP test should run with very little loss – ideally 0% for most intervals. Up to about 0.5% for short intervals is usually ok.
The line speed and fibre type can make a difference. It’s easier to get a low speed AE link to run with zero loss than a high speed GPON link. GPON is a shared medium.
If you notice intervals with high packet loss please open a support ticket. Please include all commands used when you make screenshots of the results.
TCP Test – Maximum Speed #
This shows the maximum speed of a single TCP session. The result should be close to your fibre line speed (about 90%).
IPv4 command:
iperf3 -4 -V -t 20 -O 3 -R -c iperf.atomic.ac -p 3334
IPv6 command:
iperf3 -6 -V -t 20 -O 3 -R -c iperf.atomic.ac -p 3334
TCP Stack Tuning #
Default TCP stacks in desktop PCs can perform badly with high latency and you will not see your full line speed. A Speedtest.net test from Australia will clearly show this. Some ISPs use ‘TCP accelerators’ to get around this problem.
When you find that UDP traffic can be sent without problems at high speeds, but TCP speeds are slow, you may need to adjust your TCP stack on the server and/or client side.
When the TCP send / receive buffers are increased and if the TCP congestion algorithm is set to BBR, the fibre line can usually do full line speeds.
A possible solution could be to do your bigger downloads or uploads from a Linux server, with TCP stack improved.
There are various buffer parameters you can optimise, full details here.
We suggest these config changes on Linux in /etc/sysctl.conf
net.core.rmem_max = 134217728
net.core.wmem_max = 134217728
net.ipv4.tcp_rmem = 4096 87380 134217728
net.ipv4.tcp_wmem = 4096 65536 134217728
net.ipv4.tcp_congestion_control=bbr
After you modify sysctl.conf, run ‘sysctl -p’ to activate.
This should be fine for speeds up to gigabit.