blob: 12df5bcf4c0d3b9f89ba6aca30ea7bfb9cf0c80f [file] [log] [blame] [view]
Bruce A. Mah396ccaf2014-02-28 13:44:12 -08001iperf3: A TCP, UDP, and SCTP network bandwidth measurement tool
2================================================================
Jon Duganaa594bb2007-08-29 21:57:27 +00003
Bruce A. Mah396ccaf2014-02-28 13:44:12 -08004Summary
5-------
Jon Duganf9fd0fe2010-07-08 23:46:32 +00006
Bruce A. Mah396ccaf2014-02-28 13:44:12 -08007iperf is a tool for active measurements of the maximum achievable
8bandwidth on IP networks. It supports tuning of various parameters
9related to timing, protocols, and buffers. For each test it reports
Bruce A. Mah0f081b72017-05-24 10:50:44 -070010the measured throughput / bitrate, loss, and other parameters.
Jon Duganaa594bb2007-08-29 21:57:27 +000011
Bruce A. Mah396ccaf2014-02-28 13:44:12 -080012This version, sometimes referred to as iperf3, is a redesign of an
13original version developed at NLANR/DAST. iperf3 is a new
14implementation from scratch, with the goal of a smaller, simpler code
15base, and a library version of the functionality that can be used in
Bruce A. Mah59a11c62017-03-14 14:58:22 -070016other programs. iperf3 also has a number of features found in other tools
Bruce A. Mah396ccaf2014-02-28 13:44:12 -080017such as nuttcp and netperf, but were missing from the original iperf.
Bruce A. Mah2be606a2014-02-28 17:52:52 -080018These include, for example, a zero-copy mode and optional JSON output.
Bruce A. Mahfbd89512014-09-15 11:00:08 -070019Note that iperf3 is *not* backwards compatible with the original iperf.
sethdelliott1ac522e2010-07-08 22:41:22 +000020
Bruce A. Mah396ccaf2014-02-28 13:44:12 -080021Primary development for iperf3 takes place on CentOS Linux, FreeBSD,
Bruce A. Mah35f1fbf2017-06-26 10:35:00 -070022and macOS. At this time, these are the only officially supported
Bruce A. Mah396ccaf2014-02-28 13:44:12 -080023platforms, however there have been some reports of success with
Bruce A. Mahe83fe5a2015-06-19 10:51:57 -070024OpenBSD, NetBSD, Android, Solaris, and other Linux distributions.
sethdelliott1ac522e2010-07-08 22:41:22 +000025
Bruce A. Mahaea943c2014-08-26 14:31:23 -070026iperf3 is principally developed by ESnet / Lawrence Berkeley National
Bruce A. Mah2be606a2014-02-28 17:52:52 -080027Laboratory. It is released under a three-clause BSD license.
Jon Duganaa594bb2007-08-29 21:57:27 +000028
Bruce A. Mah964f1062018-06-22 14:09:01 -070029For more information see: https://software.es.net/iperf
Bruce A. Mah43181632014-05-05 15:28:05 -070030
31Source code and issue tracker: https://github.com/esnet/iperf
Jon Duganaa594bb2007-08-29 21:57:27 +000032
Bruce A. Mah396ccaf2014-02-28 13:44:12 -080033Obtaining iperf3
34----------------
Jon Dugand768f732009-12-02 02:08:47 +000035
Bruce A. Mah396ccaf2014-02-28 13:44:12 -080036Downloads of iperf3 are available at:
Jon Dugand768f732009-12-02 02:08:47 +000037
Bruce A. Mah964f1062018-06-22 14:09:01 -070038 https://downloads.es.net/pub/iperf/
sethdelliott1ac522e2010-07-08 22:41:22 +000039
Bruce A. Mahe83fe5a2015-06-19 10:51:57 -070040To check out the most recent code, clone the git repository at:
sethdelliott1ac522e2010-07-08 22:41:22 +000041
Bruce A. Mahe83fe5a2015-06-19 10:51:57 -070042 https://github.com/esnet/iperf.git
sethdelliott1ac522e2010-07-08 22:41:22 +000043
Bruce A. Mah396ccaf2014-02-28 13:44:12 -080044Building iperf3
45---------------
46
47### Prerequisites: ###
Bruce A. Mah6b363d22014-04-10 15:07:49 -070048
49None.
Bruce A. Mah396ccaf2014-02-28 13:44:12 -080050
51### Building ###
52
53 ./configure; make; make install
54
Bruce A. Mah2be606a2014-02-28 17:52:52 -080055(Note: If configure fails, try running `./bootstrap.sh` first)
Bruce A. Mah396ccaf2014-02-28 13:44:12 -080056
57Invoking iperf3
58---------------
59
60iperf3 includes a manual page listing all of the command-line options.
61The manual page is the most up-to-date reference to the various flags and parameters.
62
63For sample command line usage, see:
64
Wes Garrisond2dcd872017-06-20 11:43:13 -050065https://fasterdata.es.net/performance-testing/network-troubleshooting-tools/iperf/
Bruce A. Mah396ccaf2014-02-28 13:44:12 -080066
67Using the default options, iperf is meant to show typical well
Bruce A. Mah35f1fbf2017-06-26 10:35:00 -070068designed application performance. "Typical well designed application"
Bruce A. Mah396ccaf2014-02-28 13:44:12 -080069means avoiding artificial enhancements that work only for testing
70(such as splice()'ing the data to /dev/null). iperf does also have
Bruce A. Mah35f1fbf2017-06-26 10:35:00 -070071flags for "extreme best case" optimizations, but they must be
Bruce A. Mah396ccaf2014-02-28 13:44:12 -080072explicitly activated.
73
74These flags include:
Bruce A. Mah3f5f7f72014-03-12 14:04:14 -070075
76 -Z, --zerocopy use a 'zero copy' sendfile() method of sending data
77 -A, --affinity n/n,m set CPU affinity
Bruce A. Mah396ccaf2014-02-28 13:44:12 -080078
79Bug Reports
80-----------
Brian Tierney55ace3e2013-11-10 09:37:10 -080081
Bruce A. Mahfbd89512014-09-15 11:00:08 -070082Before submitting a bug report, please make sure you're running the
83latest version of the code, and confirm that your issue has not
84already been fixed. Then submit to the iperf3 issue tracker on
85GitHub:
86
Bruce A. Mah70e4b712014-02-27 21:56:53 -080087https://github.com/esnet/iperf/issues
Brian Tierney55ace3e2013-11-10 09:37:10 -080088
Bruce A. Mahfbd89512014-09-15 11:00:08 -070089In your issue submission, please indicate the version of iperf3 and
90what platform you're trying to run on (provide the platform
91information even if you're not using a supported platform, we
92*might* be able to help anyway). Exact command-line arguments will
93help us recreate your problem. If you're getting error messages,
94please include them verbatim if possible, but remember to sanitize any
95sensitive information.
96
97If you have a question about usage or about the code, please do *not*
98submit an issue. Please use one of the mailing lists for that.
99
Bruce A. Mahf95924d2020-06-08 13:12:36 -0700100Relation to iperf 2.x
101---------------------
Brian Tierney55ace3e2013-11-10 09:37:10 -0800102
Bruce A. Mahf95924d2020-06-08 13:12:36 -0700103Note that iperf2 is no longer being developed by its original
Bruce A. Mah2800dfc2017-11-17 10:48:05 -0800104maintainers. However, beginning in 2014, another developer began
105fixing bugs and enhancing functionality, and generating releases of
106iperf2. Both projects (as of late 2017) are currently being developed
107actively, but independently. The continuing iperf2 development
Bruce A. Mahf95924d2020-06-08 13:12:36 -0700108project can be found at https://sourceforge.net/projects/iperf2/.
Bruce A. Mah2800dfc2017-11-17 10:48:05 -0800109
Bruce A. Mahf95924d2020-06-08 13:12:36 -0700110iperf3 contains a number of options and functions not present in
111iperf2. In addition, some flags are changed from their iperf2
112counterparts:
Bruce A. Mah3f5f7f72014-03-12 14:04:14 -0700113
114 -C, --linux-congestion set congestion control algorithm (Linux only)
115 (-Z in iperf2)
Bruce A. Mahdfcea9f2019-06-20 18:12:47 -0700116 --bidir bidirectional testing mode
117 (-d in iperf2)
Brian Tierney55ace3e2013-11-10 09:37:10 -0800118
Bruce A. Mahf95924d2020-06-08 13:12:36 -0700119Some iperf2 options are not available in iperf3:
Bruce A. Mah5f693412014-01-08 09:28:49 -0800120
Bruce A. Mah3f5f7f72014-03-12 14:04:14 -0700121 -r, --tradeoff Do a bidirectional test individually
122 -T, --ttl time-to-live, for multicast (default 1)
123 -x, --reportexclude [CDMSV] exclude C(connection) D(data) M(multicast)
124 S(settings) V(server) reports
125 -y, --reportstyle C report as a Comma-Separated Values
Brian Tierney55ace3e2013-11-10 09:37:10 -0800126
Bruce A. Mahf95924d2020-06-08 13:12:36 -0700127Also removed is the ability to set the options via environment
Bruce A. Mah5f693412014-01-08 09:28:49 -0800128variables.
Brian Tierney55ace3e2013-11-10 09:37:10 -0800129
Bruce A. Mah396ccaf2014-02-28 13:44:12 -0800130Known Issues
131------------
Brian Tierney849fc852013-12-18 15:23:16 -0800132
Bruce A. Mah0dafb3b2017-02-24 15:55:45 -0800133A set of known issues is maintained on the iperf3 Web pages:
Brian Tierney849fc852013-12-18 15:23:16 -0800134
Bruce A. Mah964f1062018-06-22 14:09:01 -0700135https://software.es.net/iperf/dev.html#known-issues
Bruce A. Mahccec14e2015-11-18 10:26:05 -0800136
Bruce A. Mahaea943c2014-08-26 14:31:23 -0700137Links
138-----
139
140This section lists links to user-contributed Web pages regarding
141iperf3. ESnet and Lawrence Berkeley National Laboratory bear no
142responsibility for the content of these pages.
143
144* Installation instructions for Debian Linux (by Cameron Camp
145 <cameron@ivdatacenter.com>):
146
147 http://cheatsheet.logicalwebhost.com/iperf-network-testing/
Bruce A. Mahda9f0462014-09-29 14:00:46 -0700148
149Copyright
150---------
151
Joe Karlsson2782d2a2020-02-21 17:08:23 -0500152iperf, Copyright (c) 2014-2020, The Regents of the University of
Bruce A. Mahda9f0462014-09-29 14:00:46 -0700153California, through Lawrence Berkeley National Laboratory (subject
154to receipt of any required approvals from the U.S. Dept. of
155Energy). All rights reserved.
156
157If you have questions about your rights to use or distribute this
158software, please contact Berkeley Lab's Technology Transfer
159Department at TTD@lbl.gov.
160
161NOTICE. This software is owned by the U.S. Department of Energy.
162As such, the U.S. Government has been granted for itself and others
163acting on its behalf a paid-up, nonexclusive, irrevocable,
164worldwide license in the Software to reproduce, prepare derivative
165works, and perform publicly and display publicly. Beginning five
166(5) years after the date permission to assert copyright is obtained
167from the U.S. Department of Energy, and subject to any subsequent
168five (5) year renewals, the U.S. Government is granted for itself
169and others acting on its behalf a paid-up, nonexclusive,
170irrevocable, worldwide license in the Software to reproduce,
171prepare derivative works, distribute copies to the public, perform
172publicly and display publicly, and to permit others to do so.
173
174This code is distributed under a BSD style license, see the LICENSE
175file for complete information.