Skip to content

Commit

Permalink
docs: Update docs to account for multi-threaded iperf3.
Browse files Browse the repository at this point in the history
  • Loading branch information
bmah888 committed Feb 6, 2024
1 parent 3510239 commit 2767212
Showing 1 changed file with 24 additions and 4 deletions.
28 changes: 24 additions & 4 deletions docs/faq.rst
Original file line number Diff line number Diff line change
Expand Up @@ -22,17 +22,37 @@ What is the history of iperf3, and what is the difference between iperf2 and ipe
current development is focused is on using UDP for latency testing, as well
as broad platform support.

As of this writing (2017), both iperf2 and iperf3 are being actively
In 2023, iperf3 was modified and restructured to support
multi-threading, so that it uses one thread per test stream. This
allows it to use multiple CPU cores during tests, which in turn
permit it to keep up with continually increasing network link and
path bandwidths across the backbones of ESnet and other network
providers.

As of this writing (2024), both iperf2 and iperf3 are being actively
(although independently) developed. We recommend being familiar with
both tools, and use whichever tool’s features best match your needs.

A feature comparison of iperf2, iperf3, and nuttcp is available at:
https://fasterdata.es.net/performance-testing/network-troubleshooting-tools/throughput-tool-comparision/

iperf3 parallel stream performance is much less than iperf2. Why?
iperf3 is single threaded, and iperf2 is multi-threaded. We
recommend using iperf2 for parallel streams.
If you want to use multiple iperf3 streams use the method described `here <https://fasterdata.es.net/performance-testing/network-troubleshooting-tools/iperf/multi-stream-iperf3/>`_.
Versions of iperf3 before version 3.16 were all single threaded, and
iperf2 is multi-threaded. This could result in a performance gap
because iperf3 was only able to use one CPU core on a host, which
turned into a bottleneck when trying to do high bitrate tests
(faster than about 25 Gbps).

Beginning with version 3.16, iperf3 is multi-threaded, which allows
it to take advantage of multiple CPU cores during a test (one thread
per stream). iperf3 has been observed to send and receive
approximately 160Gbps on a 200Gbps path in a test involving multiple
TCP flows, with little or no tuning.

Prior to multi-threading support in iperf3, one might need to use
the method described `here
<https://fasterdata.es.net/performance-testing/network-troubleshooting-tools/iperf/multi-stream-iperf3/>`_
to achieve faster speeds.

I’m trying to use iperf3 on Windows, but having trouble. What should I do?
iperf3 is not officially supported on Windows, but iperf2 is. We
Expand Down

0 comments on commit 2767212

Please sign in to comment.