Network Performance Baselining with SpeedTest and Iperf

Ookla SpeedTest and Iperf are two very useful utilities for testing your pipes in terms of how much bandwidth they can pass. Their feature lists overlap, but there are also some differences. You are can read this post for a complete rundown on them, but in a nutshell:

SpeedTest: pushes traffic to an Internet server and measures latency, and upload and download speed.

Iperf: pushes TCP or UDP traffic between two hosts under your management and can measure bandwidth, jitter, and packet loss. Mostly used in WAN testing.

Through my discussions with fellow network engineers, I have learned that SpeedTest and Iperf are used in two main cases:

Preproduction stress testing: During and after a wired or wireless network implementation, they are used to test and measure capacity, voice quality, firewall rules, and multicast. The network engineer needs to test the network from different vantage points and make sure that the design and implementation deliver the required performance and services.This is a labor intensive task and is tolerated because it needs to be done only once.

Troubleshooting: Nobody knows if the network stays compliant with the initial requirements after it is put into production. When issues come up, we get to the troubleshooting use case of Iperf and SpeedTest. They are used to test whether performance has degraded or not. The problem now is that you need to RDP to the remote site and run the test from a local machine to the Internet or another WAN host. If that is not possible, you can try to guide an unskilled employee to run the test and send the results back. If everything else fails, you have to dispatch someone to the site with a laptop to do the testing. In addition, when you manage to get the bandwidth measurement you don’t know when the problem started, if it’s intermittent, and often you don’t have historical baseline data to know whether you have deviated from the expected network performance.

This is a reactive usage of Iperf and SpeedTest and although it can answer many questions, it fails to capture the whole picture.

Baselining network bandwidth performance enables proactive detection of performance issues, as well as collection of statistics that can help identify suffering sites that need infrastructure upgrades.

With NetBeez, you can automate this baselining by using permanently installed agents at each remote site that run Iperf and SpeedTest continuously. The agents can be deployed during the network implementation phase and stay there to baseline and monitor the network for performance degradation issues. If an issue comes up, you are notified as soon as it happens and you don’t have to wait for a user to complain about slowness anymore.

Below we can see a UDP test that runs three times every hour between a wireless and a wired agent, and measures bandwidth, jitter, and packet loss.

Below, an Ookla SpeedTest runs four times every hour and records upload speed, download speed, and latency to a server hosted in Independence, MO (Server ID: 8088).

If you want to try this out yourself, you can sign up for a free NetBeez account here. You will have your own dashboard and you will need to install the NetBeez software agent on a Raspberry Pi or any x86 Debian machine. The free edition allows only one agent, but if you need two or more in order to run Iperf tests, contact us to upgrade your license.