How to use iperf3 in multi-thread mode for 10Gps+ Ethernet testing

With 10GbE becoming more widespread and often found in entry-level hardware, the CPU may become the bottleneck, so I’ll explain how to use iperf3 in multi-thread mode to fully saturate the 10GbE bandwidth even with a system based on a relatively low-end multi-core processor.

I’m currently reviewing the iKOOCORE R2 Max mini PC with two 10GbE interfaces and an entry-level Intel Processor N100 quad-core CPU. I have two mostly identical R2 Max systems: one fanless running OpenWrt fork (QWRT) acting as a server, and one actively cooled running Proxmox VE without guest OS. When I test the upload speed with iperf3, it’s fine at 9.41 Gbps, but the download speed is limited to about 8.6 Gbps, and bidirectional is worse:


The overall system CPU usage is around 30% during the test, but we can clearly see that only one CPU core is used with 100% usage.

iperf3 single core CPU usage

People using servers with high-speed 40+ Gbps Ethernet have done this type of testing for a while, but it required multiple commands. Luckily, iperf 3.16 has added support for multithreading and it’s now much easier. But I was unable to find clear instructions with a web search, so here we are.

First, we need to check the iperf3 version on our systems is indeed 3.16 or greater

OpenWrt/QWRT:


Proxmox VE 8.3:


It’s fine on OpenWrt, but the version is too old on Promox VE, so I built the freshly released iperf 3.18 from source:


We can now launch iperf3 in server mode on the OpwenWrt machine as usual:


and add the P parameter on the client side (Proxmox VE) to run iperf3 in multi-thread mode for the download test:


Here’s the output:


The output is quite verbose with an interval of 10 seconds and four threads, but the important part is that we got the full 9.41 Gbps bandwidth.

Let’s now try a full duplex (i.e. bidirectional test):


Output:


Looking at the [SUM][TX-C] and [SUM][RX-C] summary over the one-minute test, we can see 9.40 Gbps transfers in both directions. Success!

iperf3 multi thread HTOP CPU usage

HTOP shows multiple iperf3 instances nicely distributed over all four cores of the Intel N100 processor.

Share this:

Support CNX Software! Donate via cryptocurrencies, become a Patron on Patreon, or purchase goods on Amazon or Aliexpress

Radxa Orion O6 Armv9 mini-ITX motherboard
Subscribe
Notify of
guest
The comment form collects your name, email and content to allow us keep track of the comments placed on the website. Please read and accept our website Terms and Privacy Policy to post a comment.
4 Comments
oldest
newest
Sander
Sander
30 days ago

Thanks!

On my Ubuntu 24.04 “$ iperf3 –version … iperf 3.16”. So time to upgrade

Robert McMahon
Robert McMahon
30 days ago

Iperf2 has had thread support for decades. It’s also has many new stats when -e is used. Maybe give it a try.

saentist
saentist
29 days ago

need to be

multithreading 😉

willmore
willmore
27 days ago

It’s a 4 core machine, so those are identical.

Boardcon EM3562 Rockchip RK3562 SBC with 8 analog camera inputs