Menu

ESnet Releases New Version of iperf, Network Performance Measurement Tool

January 3, 2024

By Bonnie Powell

For ESnet staff, a key part of operating the high-performance network serving the Department of Energy’s (DOE’s) scientific research ecosystem is understanding the behavior — or misbehavior — of that network: What speed of applications can it support? Are there problems in the network that are interfering with ESnet’s ability to provide a clean, reliable data path to its end users? To answer these and other questions, ESnet has developed multiple network diagnostic tools, refining and upgrading them as new challenges arise. In addition to deploying these tools on ESnet6, the latest iteration of the DOE-funded network, ESnet also makes them available to the wider research and education (R&E) and science IT networking communities. Such knowledge transfer is part of ESnet's mission to free scientific progress from the constraints of where instruments, people, computational resources, or data might be located.

In late November, ESnet’s Measurement and Analysis group, part of the Systems and Software department, released iperf-3.16, a significant new version of the open-source network performance measurement tool iperf3 (see iperf3 on Github). iperf3 is part of perfSONAR — a platform for end-to-end network performance measurement and monitoring that was developed through a multi-organization partnership in which ESnet was a founding member. It can also be used as a stand-alone tool for measuring network performance in general, applicable to all types of organizations relying on networks. Even end users who troubleshoot their own performance issues find it beneficial. (iperf3 is a complete rewrite of iperf2, which was not developed by ESnet. The projects are maintained separately, with different specializations for slightly different audiences.)

For iperf-3.16, the ESnet team restructured the code to allow using multiple CPU cores to conduct network tests. Network speeds have been scaling up faster than processor core speeds, so this functionality was necessary in order for network performance engineers to run iperf3 on modern networks, including ESnet6, which boasts speeds in excess of 100 Gigabits per second (Gbps). 

Graph of two lines showing throughput comparison

Throughput Comparison Between Single and Multi-Threaded iperf3: Showing the throughput capabilities of the older, single-threaded iperf3 (orange) versus the new iperf3-mt (blue), which takes advantage of multiple cores using threads to increase the throughput.

The new version of iperf3 gives better insights into high-speed network behaviors through improved performance. This capability is especially useful for networks such as ESnet6 that are continually improving and upgrading their capacities. Network engineers need to identify and isolate problems on the network quickly, as they happen, in order to keep up with the increasing demands of scientific research collaborations whose success or failure may depend on a network’s speed, reliability, and performance. 

What’s New with iperf-3.16

  • This version of iperf3 introduces a major change in the way that parallel tests are handled. iperf3 now uses a separate thread for each test stream. Generally, multiple threads will use multiple CPU cores (if available), so this change will likely improve iperf3's ability to do higher-speed tests, particularly on 100+Gbps paths. In internal testing at ESnet, this version has recorded transfers as high as 148 Gbps over 200 Gbps paths.
  • iperf-3.16 should be fully backward-compatible with prior iperf3 releases and should interoperate correctly with all 3.x clients and servers.

How to Obtain iperf-3.16

  • Many operating system distributions include executables of iperf3 in their software packages.
  • The source code for iperf-3.16 is available at: https://downloads.es.net/pub/iperf/iperf-3.16.tar.gz
  • iperf3 is freely redistributable under a 3-clause BSD license. More information can be found in the LICENSE file inside the source distribution.