xref: /iperf/README.md (revision 76bd67f6)
1iperf3:  A TCP, UDP, and SCTP network bandwidth measurement tool
2================================================================
3
4Summary
5-------
6
7iperf 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
10the measured throughput / bitrate, loss, and other parameters.
11
12This 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
16other programs. iperf3 also has a number of features found in other tools
17such as nuttcp and netperf, but were missing from the original iperf.
18These include, for example, a zero-copy mode and optional JSON output.
19Note that iperf3 is *not* backwards compatible with the original iperf.
20
21Primary development for iperf3 takes place on CentOS Linux, FreeBSD,
22and macOS.  At this time, these are the only officially supported
23platforms, however there have been some reports of success with
24OpenBSD, NetBSD, Android, Solaris, and other Linux distributions.
25
26iperf3 is principally developed by ESnet / Lawrence Berkeley National
27Laboratory.  It is released under a three-clause BSD license.
28
29For more information see: https://software.es.net/iperf
30
31Source code and issue tracker: https://github.com/esnet/iperf
32
33Discussion forums: https://github.com/esnet/iperf/discussions
34
35Obtaining iperf3
36----------------
37
38Downloads of iperf3 are available at:
39
40    https://downloads.es.net/pub/iperf/
41
42To check out the most recent code, clone the git repository at:
43
44    https://github.com/esnet/iperf.git
45
46Building iperf3
47---------------
48
49### Prerequisites: ###
50
51None.
52
53### Building ###
54
55    ./configure; make; make install
56
57(Note: If configure fails, try running `./bootstrap.sh` first)
58
59Invoking iperf3
60---------------
61
62iperf3 includes a manual page listing all of the command-line options.
63The manual page is the most up-to-date reference to the various flags and parameters.
64
65For sample command line usage, see:
66
67https://fasterdata.es.net/performance-testing/network-troubleshooting-tools/iperf/
68
69Using the default options, iperf is meant to show typical well
70designed application performance.  "Typical well designed application"
71means avoiding artificial enhancements that work only for testing
72(such as splice()'ing the data to /dev/null).  iperf does also have
73flags for "extreme best case" optimizations, but they must be
74explicitly activated.
75
76These flags include:
77
78    -Z, --zerocopy            use a 'zero copy' sendfile() method of sending data
79    -A, --affinity n/n,m      set CPU affinity
80
81Bug Reports
82-----------
83
84Before submitting a bug report, please make sure you're running the
85latest version of the code, and confirm that your issue has not
86already been fixed.  Then submit to the iperf3 issue tracker on
87GitHub:
88
89https://github.com/esnet/iperf/issues
90
91In your issue submission, please indicate the version of iperf3 and
92what platform you're trying to run on (provide the platform
93information even if you're not using a supported platform, we
94*might* be able to help anyway).  Exact command-line arguments will
95help us recreate your problem.  If you're getting error messages,
96please include them verbatim if possible, but remember to sanitize any
97sensitive information.
98
99If you have a question about usage or about the code, please do *not*
100submit an issue.  Please use one of the mailing lists for that.
101
102Relation to iperf 2.x
103---------------------
104
105Although iperf2 and iperf3 both measure network performance,
106they are not compatible with each other.
107The projects (as of mid-2021) are in active, but separate, development.
108The continuing iperf2 development
109project can be found at https://sourceforge.net/projects/iperf2/.
110
111iperf3 contains a number of options and functions not present in
112iperf2.  In addition, some flags are changed from their iperf2
113counterparts:
114
115    -C, --linux-congestion    set congestion control algorithm (Linux only)
116                              (-Z in iperf2)
117    --bidir                   bidirectional testing mode
118                              (-d in iperf2)
119
120Some iperf2 options are not available in iperf3:
121
122    -r, --tradeoff           Do a bidirectional test individually
123    -T, --ttl                time-to-live, for multicast (default 1)
124    -x, --reportexclude [CDMSV]   exclude C(connection) D(data) M(multicast)
125                                  S(settings) V(server) reports
126    -y, --reportstyle C      report as a Comma-Separated Values
127
128Also removed is the ability to set the options via environment
129variables.
130
131Known Issues
132------------
133
134A set of known issues is maintained on the iperf3 Web pages:
135
136https://software.es.net/iperf/dev.html#known-issues
137
138Links
139-----
140
141This section lists links to user-contributed Web pages regarding
142iperf3.  ESnet and Lawrence Berkeley National Laboratory bear no
143responsibility for the content of these pages.
144
145* Installation instructions for Debian Linux (by Cameron Camp
146  <[email protected]>):
147
148  http://cheatsheet.logicalwebhost.com/iperf-network-testing/
149
150Copyright
151---------
152
153iperf, Copyright (c) 2014-2022, The Regents of the University of
154California, through Lawrence Berkeley National Laboratory (subject
155to receipt of any required approvals from the U.S. Dept. of
156Energy).  All rights reserved.
157
158If you have questions about your rights to use or distribute this
159software, please contact Berkeley Lab's Technology Transfer
160Department at [email protected].
161
162NOTICE.  This software is owned by the U.S. Department of Energy.
163As such, the U.S. Government has been granted for itself and others
164acting on its behalf a paid-up, nonexclusive, irrevocable,
165worldwide license in the Software to reproduce, prepare derivative
166works, and perform publicly and display publicly.  Beginning five
167(5) years after the date permission to assert copyright is obtained
168from the U.S. Department of Energy, and subject to any subsequent
169five (5) year renewals, the U.S. Government is granted for itself
170and others acting on its behalf a paid-up, nonexclusive,
171irrevocable, worldwide license in the Software to reproduce,
172prepare derivative works, distribute copies to the public, perform
173publicly and display publicly, and to permit others to do so.
174
175This code is distributed under a BSD style license, see the LICENSE
176file for complete information.
177