iPerf testing

Bandwidth testing with iPerf

sabine avatar
Written by sabine
Updated over a week ago

> iPerf is a tool for active measurements of the maximum achievable bandwidth on IP networks. It supports tuning of various parameters related to timing, protocols, and buffers. For each test it reports the measured throughput / bitrate, loss, and other parameters.

The Cape sensor currently supports bandwidth measurements using iperf3 and iperf2. iperf3  is a single-threaded rewrite and only supports one client connection at a time; you will need multiple servers on different ports to let multiple sensors test at one time. iperf2  is multi-threaded and allows multiple client connections; you will only need one server for multiple sensors (unless you start saturating the available bandwidth of that server).

You can read more about the iperf3 tool (and get your own copy of it) at https://github.com/esnet/iperf.

To set up a new iPerf test on the dashboard, follow the following steps:

  1. Click the Settings  (Gear) icon in the top right of the screen

  2. Choose the Testing tab in the top menu

  3. Click the + Add test  button

  4. You can classify the test as Internal  or External  depending on your preference (e.g. is this an internal or external iPerf server?)

  5. Choose the Custom  template type

  6. Select iPerf3 or iPerf2  from the template dropdown

You'll need an existing iperf3  server running, that is accessible by the sensor.

The options are mostly obvious, but some are covered here:

Direction - should the sensor upload or download from the iperf3 server

Window  - set the socket buffer size (for TCP this is the TCP window size)

Parallel streams  - the number of simultaneous connections to make to the server

Frequency  - how often to execute this test. Be aware that setting a high frequency as well as a high test duration will cause a lot of data to be sent/received over the day as the sensor does its tests.

Caution

  1. Selecting the Download  and UDP  options with no bandwidth limit can cause the test to report false values. This is because you are instructing the server to send packets to the sensor as fast as possible and UDP doesn't have congestion control. The sensor and dashboard have some workarounds to correct the test results if you do set it up with these options but the results will be approximately 5 - 15% inaccurate.

  2. iperf3 is single threaded and as such only allows one client to connect at a time. This means that if you have multiple sensors all testing against the same iperf3  server with high frequency that you may get some incomplete test results.

Did this answer your question?