10f72a120SBruce A. Mahiperf3: A TCP, UDP, and SCTP network bandwidth measurement tool 20f72a120SBruce A. Mah================================================================ 30f72a120SBruce A. Mah 40f72a120SBruce A. MahSummary 50f72a120SBruce A. Mah------- 60f72a120SBruce A. Mah 70f72a120SBruce A. Mahiperf is a tool for active measurements of the maximum achievable 80f72a120SBruce A. Mahbandwidth on IP networks. It supports tuning of various parameters 90f72a120SBruce A. Mahrelated to timing, protocols, and buffers. For each test it reports 100f081b7bSBruce A. Mahthe measured throughput / bitrate, loss, and other parameters. 110f72a120SBruce A. Mah 120f72a120SBruce A. MahThis version, sometimes referred to as iperf3, is a redesign of an 130f72a120SBruce A. Mahoriginal version developed at NLANR/DAST. iperf3 is a new 140f72a120SBruce A. Mahimplementation from scratch, with the goal of a smaller, simpler code 150f72a120SBruce A. Mahbase, and a library version of the functionality that can be used in 1659a11c62SBruce A. Mahother programs. iperf3 also has a number of features found in other tools 170f72a120SBruce A. Mahsuch as nuttcp and netperf, but were missing from the original iperf. 182be606a5SBruce A. MahThese include, for example, a zero-copy mode and optional JSON output. 19fbd89512SBruce A. MahNote that iperf3 is *not* backwards compatible with the original iperf. 200f72a120SBruce A. Mah 210f72a120SBruce A. MahPrimary development for iperf3 takes place on CentOS Linux, FreeBSD, 2235f1fbf5SBruce A. Mahand macOS. At this time, these are the only officially supported 230f72a120SBruce A. Mahplatforms, however there have been some reports of success with 24e83fe5a5SBruce A. MahOpenBSD, NetBSD, Android, Solaris, and other Linux distributions. 250f72a120SBruce A. Mah 26aea943c3SBruce A. Mahiperf3 is principally developed by ESnet / Lawrence Berkeley National 272be606a5SBruce A. MahLaboratory. It is released under a three-clause BSD license. 280f72a120SBruce A. Mah 29964f106aSBruce A. MahFor more information see: https://software.es.net/iperf 3043181633SBruce A. Mah 3143181633SBruce A. MahSource code and issue tracker: https://github.com/esnet/iperf 320f72a120SBruce A. Mah 336ff9667aSBruce A. MahDiscussion forums: https://github.com/esnet/iperf/discussions 346ff9667aSBruce A. Mah 350f72a120SBruce A. MahObtaining iperf3 360f72a120SBruce A. Mah---------------- 370f72a120SBruce A. Mah 380f72a120SBruce A. MahDownloads of iperf3 are available at: 390f72a120SBruce A. Mah 40964f106aSBruce A. Mah https://downloads.es.net/pub/iperf/ 410f72a120SBruce A. Mah 42e83fe5a5SBruce A. MahTo check out the most recent code, clone the git repository at: 430f72a120SBruce A. Mah 44e83fe5a5SBruce A. Mah https://github.com/esnet/iperf.git 450f72a120SBruce A. Mah 460f72a120SBruce A. MahBuilding iperf3 470f72a120SBruce A. Mah--------------- 480f72a120SBruce A. Mah 490f72a120SBruce A. Mah### Prerequisites: ### 506b363d29SBruce A. Mah 516b363d29SBruce A. MahNone. 520f72a120SBruce A. Mah 530f72a120SBruce A. Mah### Building ### 540f72a120SBruce A. Mah 550f72a120SBruce A. Mah ./configure; make; make install 560f72a120SBruce A. Mah 572be606a5SBruce A. Mah(Note: If configure fails, try running `./bootstrap.sh` first) 580f72a120SBruce A. Mah 590f72a120SBruce A. MahInvoking iperf3 600f72a120SBruce A. Mah--------------- 610f72a120SBruce A. Mah 620f72a120SBruce A. Mahiperf3 includes a manual page listing all of the command-line options. 630f72a120SBruce A. MahThe manual page is the most up-to-date reference to the various flags and parameters. 640f72a120SBruce A. Mah 650f72a120SBruce A. MahFor sample command line usage, see: 660f72a120SBruce A. Mah 67d2dcd876SWes Garrisonhttps://fasterdata.es.net/performance-testing/network-troubleshooting-tools/iperf/ 680f72a120SBruce A. Mah 690f72a120SBruce A. MahUsing the default options, iperf is meant to show typical well 7035f1fbf5SBruce A. Mahdesigned application performance. "Typical well designed application" 710f72a120SBruce A. Mahmeans avoiding artificial enhancements that work only for testing 720f72a120SBruce A. Mah(such as splice()'ing the data to /dev/null). iperf does also have 7335f1fbf5SBruce A. Mahflags for "extreme best case" optimizations, but they must be 740f72a120SBruce A. Mahexplicitly activated. 750f72a120SBruce A. Mah 760f72a120SBruce A. MahThese flags include: 773f5f7f75SBruce A. Mah 780f72a120SBruce A. Mah -Z, --zerocopy use a 'zero copy' sendfile() method of sending data 790f72a120SBruce A. Mah -A, --affinity n/n,m set CPU affinity 800f72a120SBruce A. Mah 810f72a120SBruce A. MahBug Reports 820f72a120SBruce A. Mah----------- 830f72a120SBruce A. Mah 84fbd89512SBruce A. MahBefore submitting a bug report, please make sure you're running the 85fbd89512SBruce A. Mahlatest version of the code, and confirm that your issue has not 86fbd89512SBruce A. Mahalready been fixed. Then submit to the iperf3 issue tracker on 87fbd89512SBruce A. MahGitHub: 88fbd89512SBruce A. Mah 890f72a120SBruce A. Mahhttps://github.com/esnet/iperf/issues 900f72a120SBruce A. Mah 91fbd89512SBruce A. MahIn your issue submission, please indicate the version of iperf3 and 92fbd89512SBruce A. Mahwhat platform you're trying to run on (provide the platform 93fbd89512SBruce A. Mahinformation even if you're not using a supported platform, we 94fbd89512SBruce A. Mah*might* be able to help anyway). Exact command-line arguments will 95fbd89512SBruce A. Mahhelp us recreate your problem. If you're getting error messages, 96fbd89512SBruce A. Mahplease include them verbatim if possible, but remember to sanitize any 97fbd89512SBruce A. Mahsensitive information. 98fbd89512SBruce A. Mah 99fbd89512SBruce A. MahIf you have a question about usage or about the code, please do *not* 100fbd89512SBruce A. Mahsubmit an issue. Please use one of the mailing lists for that. 101fbd89512SBruce A. Mah 102f95924ddSBruce A. MahRelation to iperf 2.x 103f95924ddSBruce A. Mah--------------------- 1040f72a120SBruce A. Mah 105709f552cSRich BrownAlthough iperf2 and iperf3 both measure network performance, 106709f552cSRich Brownthey are not compatible with each other. 107709f552cSRich BrownThe projects (as of mid-2021) are in active, but separate, development. 108709f552cSRich BrownThe continuing iperf2 development 109f95924ddSBruce A. Mahproject can be found at https://sourceforge.net/projects/iperf2/. 1102800dfcaSBruce A. Mah 111f95924ddSBruce A. Mahiperf3 contains a number of options and functions not present in 112f95924ddSBruce A. Mahiperf2. In addition, some flags are changed from their iperf2 113f95924ddSBruce A. Mahcounterparts: 1143f5f7f75SBruce A. Mah 1150f72a120SBruce A. Mah -C, --linux-congestion set congestion control algorithm (Linux only) 1163f5f7f75SBruce A. Mah (-Z in iperf2) 117dfcea9f6SBruce A. Mah --bidir bidirectional testing mode 118dfcea9f6SBruce A. Mah (-d in iperf2) 1190f72a120SBruce A. Mah 120f95924ddSBruce A. MahSome iperf2 options are not available in iperf3: 1210f72a120SBruce A. Mah 1220f72a120SBruce A. Mah -r, --tradeoff Do a bidirectional test individually 1230f72a120SBruce A. Mah -T, --ttl time-to-live, for multicast (default 1) 1240f72a120SBruce A. Mah -x, --reportexclude [CDMSV] exclude C(connection) D(data) M(multicast) 1250f72a120SBruce A. Mah S(settings) V(server) reports 1260f72a120SBruce A. Mah -y, --reportstyle C report as a Comma-Separated Values 1270f72a120SBruce A. Mah 128f95924ddSBruce A. MahAlso removed is the ability to set the options via environment 1290f72a120SBruce A. Mahvariables. 1300f72a120SBruce A. Mah 1310f72a120SBruce A. MahKnown Issues 1320f72a120SBruce A. Mah------------ 1330f72a120SBruce A. Mah 1340dafb3b2SBruce A. MahA set of known issues is maintained on the iperf3 Web pages: 1350f72a120SBruce A. Mah 136964f106aSBruce A. Mahhttps://software.es.net/iperf/dev.html#known-issues 137ccec14ebSBruce A. Mah 138aea943c3SBruce A. MahLinks 139aea943c3SBruce A. Mah----- 140aea943c3SBruce A. Mah 141aea943c3SBruce A. MahThis section lists links to user-contributed Web pages regarding 142aea943c3SBruce A. Mahiperf3. ESnet and Lawrence Berkeley National Laboratory bear no 143aea943c3SBruce A. Mahresponsibility for the content of these pages. 144aea943c3SBruce A. Mah 145aea943c3SBruce A. Mah* Installation instructions for Debian Linux (by Cameron Camp 146aea943c3SBruce A. Mah <[email protected]>): 147aea943c3SBruce A. Mah 148aea943c3SBruce A. Mah http://cheatsheet.logicalwebhost.com/iperf-network-testing/ 149da9f046fSBruce A. Mah 150da9f046fSBruce A. MahCopyright 151da9f046fSBruce A. Mah--------- 152da9f046fSBruce A. Mah 153*76bd67f6SSarah Larseniperf, Copyright (c) 2014-2022, The Regents of the University of 154da9f046fSBruce A. MahCalifornia, through Lawrence Berkeley National Laboratory (subject 155da9f046fSBruce A. Mahto receipt of any required approvals from the U.S. Dept. of 156da9f046fSBruce A. MahEnergy). All rights reserved. 157da9f046fSBruce A. Mah 158da9f046fSBruce A. MahIf you have questions about your rights to use or distribute this 159da9f046fSBruce A. Mahsoftware, please contact Berkeley Lab's Technology Transfer 160da9f046fSBruce A. MahDepartment at [email protected]. 161da9f046fSBruce A. Mah 162da9f046fSBruce A. MahNOTICE. This software is owned by the U.S. Department of Energy. 163da9f046fSBruce A. MahAs such, the U.S. Government has been granted for itself and others 164da9f046fSBruce A. Mahacting on its behalf a paid-up, nonexclusive, irrevocable, 165da9f046fSBruce A. Mahworldwide license in the Software to reproduce, prepare derivative 166da9f046fSBruce A. Mahworks, and perform publicly and display publicly. Beginning five 167da9f046fSBruce A. Mah(5) years after the date permission to assert copyright is obtained 168da9f046fSBruce A. Mahfrom the U.S. Department of Energy, and subject to any subsequent 169da9f046fSBruce A. Mahfive (5) year renewals, the U.S. Government is granted for itself 170da9f046fSBruce A. Mahand others acting on its behalf a paid-up, nonexclusive, 171da9f046fSBruce A. Mahirrevocable, worldwide license in the Software to reproduce, 172da9f046fSBruce A. Mahprepare derivative works, distribute copies to the public, perform 173da9f046fSBruce A. Mahpublicly and display publicly, and to permit others to do so. 174da9f046fSBruce A. Mah 175da9f046fSBruce A. MahThis code is distributed under a BSD style license, see the LICENSE 176da9f046fSBruce A. Mahfile for complete information. 177