Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

docs: Update docs to account for multi-threaded iperf3. #1646

Merged
merged 1 commit into from
Feb 9, 2024
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
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
Loading