0
0
Fork 0
mirror of https://github.com/esnet/iperf.git synced 2026-04-21 07:20:05 +00:00
iperf3: A TCP, UDP, and SCTP network bandwidth measurement tool
  • C 51.9%
  • Shell 31.6%
  • Makefile 10.8%
  • M4 3.3%
  • Roff 2%
  • Other 0.3%
Find a file
Bruce A. Mah 896cc4259a
Doc update 2026 04 09 (#2024)
* docs: Change http:// links to https:// and fix old broken links.

* docs: Use contemporary version of ESnet logo in page footer.

While here, clean up old unused logo files.

* docs: Fix GitHub icon in header.

* docs: Convert "ESnet" link text in header to orb from the 2025 logo set.

* docs: Stop linking to the RST source for pages.

* docs: Fix formatting of make_release step.

* docs: Move a bunch of releases into the "Older News" section.

* docs: Add one of the new iperf3 logos to the front docs page.
2026-04-13 11:48:09 -07:00
.github Draft: Add auth_test.sh to github actions (#2016) 2026-03-30 11:21:59 -07:00
config Release engineering changes for iperf-3.21 (#2020) 2026-04-09 11:55:24 -07:00
contrib Secure iperf3 systemd service (#1855) 2026-04-03 10:37:43 -07:00
docs Doc update 2026 04 09 (#2024) 2026-04-13 11:48:09 -07:00
examples Regen. 2026-02-18 15:23:09 -08:00
src Release engineering changes for iperf-3.21 (#2020) 2026-04-09 11:55:24 -07:00
.gitignore Minor changes to .gitignore and error messages (#1408) 2022-11-15 13:51:14 -08:00
.gitlab-ci.yml Add gitlab-ci.yml (#1933) 2025-08-29 10:38:25 -07:00
aclocal.m4 Release engineering changes for iperf-3.21 (#2020) 2026-04-09 11:55:24 -07:00
auth_test.sh Update to not have arguments 2026-03-20 18:53:00 +00:00
bootstrap.sh Greatly simplify (and fix) behavior of bootstrap.sh. 2022-05-12 17:11:33 -07:00
configure Regen. 2026-04-09 13:39:53 -07:00
configure.ac autoconf: Post-release version bump. 2026-04-09 13:39:19 -07:00
INSTALL Commented 'AX_LIB_SOCKET_NSL' out of configure.ac to fix build problem. 2012-08-20 14:35:58 -07:00
iperf3.spec.in updated SPECS to use RELNOTES.md 2023-04-05 08:49:47 -07:00
LICENSE Update copyright dates. 2026-02-19 12:09:29 -08:00
make_release Remove signing requirement for git tags 2024-05-13 11:40:55 -07:00
Makefile.am automake / libtool support for programs in the examples/ subdirectory. 2014-03-20 09:52:09 -07:00
Makefile.in Regen. 2026-02-18 15:23:09 -08:00
README.md Update documentation (#2014) 2026-03-27 08:49:15 -07:00
RELNOTES.md Fix GRO/GSO Pull request number in release notes 2026-04-09 19:41:05 +00:00
test_commands.sh GitHub actions: Remove deprecated CI runner, add more diverse set of runners. 2025-03-25 10:39:45 -07:00

iperf3: A TCP, UDP, and SCTP network bandwidth measurement tool

Summary

iperf is a tool for active measurement of the maximum achievable bandwidth on IP networks. It supports tuning of various parameters related to timing, protocols, and buffers. For each test it reports the measured throughput / bitrate, loss, and other parameters.

This version, sometimes referred to as iperf3, is a redesign of an original version developed at NLANR/DAST. iperf3 is a new implementation from scratch, with the goal of a smaller, simpler code base, and a library version of the functionality that can be used in other programs. iperf3 also has a number of features found in other tools such as nuttcp and netperf, but were missing from the original iperf. These include, for example, a zero-copy mode and optional JSON output. Note that iperf3 is not backwards compatible with the original iperf.

One of the primary uses for iperf3 is as a component of the perfSONAR network measurement system (https://www.perfsonar.net/). It is also useful as a standalone tool, and is used as such by ESnet and other R&E networks. It has also been found useful in the general networking community and has even found its way into various commercial products.

Primary development for iperf3 takes place on Ubuntu Linux, FreeBSD, and macOS. At this time, these are the only officially supported platforms, however there have been some reports of success with OpenBSD, NetBSD, Android, Solaris, and other Linux distributions.

iperf3 is principally developed by ESnet / Lawrence Berkeley National Laboratory. It is released under a three-clause BSD license.

For more information see: https://software.es.net/iperf

Source code and issue tracker: https://github.com/esnet/iperf

Discussion forums: https://github.com/esnet/iperf/discussions

Reporting security vulnerabilities: iperf@es.net

Frequently Asked Questions: https://software.es.net/iperf/faq.html

Obtaining iperf3

Downloads of iperf3 are available at:

https://downloads.es.net/pub/iperf/

To check out the most recent code, clone the git repository at:

https://github.com/esnet/iperf.git

Building iperf3

Prerequisites:

None.

Building

./configure; make; make install

(Note: If configure fails, try running ./bootstrap.sh first)

Invoking iperf3

iperf3 includes a manual page listing all of the command-line options. The manual page is the most up-to-date reference to the various flags and parameters.

For sample command line usage, see:

https://fasterdata.es.net/performance-testing/network-troubleshooting-tools/iperf/

Using the default options, iperf is meant to show typical well designed application performance. "Typical well designed application" means avoiding artificial enhancements that work only for testing (such as splice()'ing the data to /dev/null). iperf does also have flags for "extreme best case" optimizations, but they must be explicitly activated.

These flags include:

-Z, --zerocopy            use a 'zero copy' sendfile() method of sending data
-A, --affinity n/n,m      set CPU affinity

Bug and Security Reports

Before submitting a bug report, please make sure you're running the latest version of the code, and confirm that your issue has not already been fixed. Then submit to the iperf3 issue tracker on GitHub:

https://github.com/esnet/iperf/issues

In your issue submission, please indicate the version of iperf3 and what platform you're trying to run on (provide the platform information even if you're not using a supported platform, we might be able to help anyway). Exact command-line arguments will help us recreate your problem. If you're getting error messages, please include them verbatim if possible, but remember to sanitize any sensitive information.

If you have a question about usage or about the code, please do not submit an issue. Please use one of the mailing lists for that.

If you suspect there is a potential security issue, please contact the developers at:

iperf@es.net

Relation to iperf 2.x

Although iperf2 and iperf3 both measure network performance, they are not compatible with each other. The projects (as of early 2026) are in active, but separate, development. The continuing iperf2 development project can be found at https://sourceforge.net/projects/iperf2/.

Known Issues

A set of known issues is maintained on the iperf3 Web pages:

https://software.es.net/iperf/dev.html#known-issues

This section lists links to user-contributed Web pages regarding iperf3. ESnet and Lawrence Berkeley National Laboratory bear no responsibility for the content of these pages.

iperf, Copyright (c) 2014-2026, The Regents of the University of California, through Lawrence Berkeley National Laboratory (subject to receipt of any required approvals from the U.S. Dept. of Energy). All rights reserved.

If you have questions about your rights to use or distribute this software, please contact Berkeley Lab's Technology Transfer Department at TTD@lbl.gov.

NOTICE. This software is owned by the U.S. Department of Energy. As such, the U.S. Government has been granted for itself and others acting on its behalf a paid-up, nonexclusive, irrevocable, worldwide license in the Software to reproduce, prepare derivative works, and perform publicly and display publicly. Beginning five (5) years after the date permission to assert copyright is obtained from the U.S. Department of Energy, and subject to any subsequent five (5) year renewals, the U.S. Government is granted for itself and others acting on its behalf a paid-up, nonexclusive, irrevocable, worldwide license in the Software to reproduce, prepare derivative works, distribute copies to the public, perform publicly and display publicly, and to permit others to do so.

This code is distributed under a BSD style license, see the LICENSE file for complete information.