We have talked about iPerf several times on this blog, its history, and comparisons between iPerf2 vs. iPerf3. iPerf2 was abandoned for several years, but now it’s really refreshing to see a new team taking over the project and releasing updates often.
In January 2021, the authors of iPerf2 released version 2.1, along with a few more versions releases with bug fixes and new features. As of now, the latest version of iPerf2 is 2.1.4.
In iPerf 2.1 there are several improvements and you can find all of the details in the ‘README’ that can be downloaded here. The author provides Windows *.exe files, and the configuration and build for Linux is this simple:
- Download the package
- Uncompress the package
- Move into the extracted directory and run
./configure & make
Once done correctly in the directory “/src/”, you should find the executable iperf
.
For more information on installing on Windows and MAC visit this page.
You can see a list of all available options by running iperf --help
. To name a few new ones:
- – -bind: You can bind on a specific interface on the iperf server (and not only on the client side any more)
- – -full-duplex: support for full duplex traffic
- – -revere: support for reverse traffic using
- – -connect-only: support for TCP connect only tests
One of the features that got me excited is the ability to detect high CPU that might be causing lower measured bandwidth.
I haven’t been able to reproduce and trigger this feature, but it’s a very useful one for me. I’ve seen way too many engineers wondering whether their measurements are accurate or caused by high CPU utilization or are limited by the CPUs and not by the network. The message reads as follows:
WARN: this test may have been CPU bound (95%) (or may not be detecting the underlying network devices)
There are several new options added to iPerf 2.1 and I hope you find them useful. Also, iPerf3 is under active maintenance and this is encouraging to see frequent updates of both versions.