1*7ab6e6acSAndroid Build Coastguard Workeriperf3: A TCP, UDP, and SCTP network bandwidth measurement tool 2*7ab6e6acSAndroid Build Coastguard Worker================================================================ 3*7ab6e6acSAndroid Build Coastguard Worker 4*7ab6e6acSAndroid Build Coastguard WorkerSummary 5*7ab6e6acSAndroid Build Coastguard Worker------- 6*7ab6e6acSAndroid Build Coastguard Worker 7*7ab6e6acSAndroid Build Coastguard Workeriperf is a tool for active measurements of the maximum achievable 8*7ab6e6acSAndroid Build Coastguard Workerbandwidth on IP networks. It supports tuning of various parameters 9*7ab6e6acSAndroid Build Coastguard Workerrelated to timing, protocols, and buffers. For each test it reports 10*7ab6e6acSAndroid Build Coastguard Workerthe measured throughput / bitrate, loss, and other parameters. 11*7ab6e6acSAndroid Build Coastguard Worker 12*7ab6e6acSAndroid Build Coastguard WorkerThis version, sometimes referred to as iperf3, is a redesign of an 13*7ab6e6acSAndroid Build Coastguard Workeroriginal version developed at NLANR/DAST. iperf3 is a new 14*7ab6e6acSAndroid Build Coastguard Workerimplementation from scratch, with the goal of a smaller, simpler code 15*7ab6e6acSAndroid Build Coastguard Workerbase, and a library version of the functionality that can be used in 16*7ab6e6acSAndroid Build Coastguard Workerother programs. iperf3 also has a number of features found in other tools 17*7ab6e6acSAndroid Build Coastguard Workersuch as nuttcp and netperf, but were missing from the original iperf. 18*7ab6e6acSAndroid Build Coastguard WorkerThese include, for example, a zero-copy mode and optional JSON output. 19*7ab6e6acSAndroid Build Coastguard WorkerNote that iperf3 is *not* backwards compatible with the original iperf. 20*7ab6e6acSAndroid Build Coastguard Worker 21*7ab6e6acSAndroid Build Coastguard WorkerPrimary development for iperf3 takes place on CentOS Linux, FreeBSD, 22*7ab6e6acSAndroid Build Coastguard Workerand macOS. At this time, these are the only officially supported 23*7ab6e6acSAndroid Build Coastguard Workerplatforms, however there have been some reports of success with 24*7ab6e6acSAndroid Build Coastguard WorkerOpenBSD, NetBSD, Android, Solaris, and other Linux distributions. 25*7ab6e6acSAndroid Build Coastguard Worker 26*7ab6e6acSAndroid Build Coastguard Workeriperf3 is principally developed by ESnet / Lawrence Berkeley National 27*7ab6e6acSAndroid Build Coastguard WorkerLaboratory. It is released under a three-clause BSD license. 28*7ab6e6acSAndroid Build Coastguard Worker 29*7ab6e6acSAndroid Build Coastguard WorkerFor more information see: https://software.es.net/iperf 30*7ab6e6acSAndroid Build Coastguard Worker 31*7ab6e6acSAndroid Build Coastguard WorkerSource code and issue tracker: https://github.com/esnet/iperf 32*7ab6e6acSAndroid Build Coastguard Worker 33*7ab6e6acSAndroid Build Coastguard WorkerObtaining iperf3 34*7ab6e6acSAndroid Build Coastguard Worker---------------- 35*7ab6e6acSAndroid Build Coastguard Worker 36*7ab6e6acSAndroid Build Coastguard WorkerDownloads of iperf3 are available at: 37*7ab6e6acSAndroid Build Coastguard Worker 38*7ab6e6acSAndroid Build Coastguard Worker https://downloads.es.net/pub/iperf/ 39*7ab6e6acSAndroid Build Coastguard Worker 40*7ab6e6acSAndroid Build Coastguard WorkerTo check out the most recent code, clone the git repository at: 41*7ab6e6acSAndroid Build Coastguard Worker 42*7ab6e6acSAndroid Build Coastguard Worker https://github.com/esnet/iperf.git 43*7ab6e6acSAndroid Build Coastguard Worker 44*7ab6e6acSAndroid Build Coastguard WorkerBuilding iperf3 45*7ab6e6acSAndroid Build Coastguard Worker--------------- 46*7ab6e6acSAndroid Build Coastguard Worker 47*7ab6e6acSAndroid Build Coastguard Worker### Prerequisites: ### 48*7ab6e6acSAndroid Build Coastguard Worker 49*7ab6e6acSAndroid Build Coastguard WorkerNone. 50*7ab6e6acSAndroid Build Coastguard Worker 51*7ab6e6acSAndroid Build Coastguard Worker### Building ### 52*7ab6e6acSAndroid Build Coastguard Worker 53*7ab6e6acSAndroid Build Coastguard Worker ./configure; make; make install 54*7ab6e6acSAndroid Build Coastguard Worker 55*7ab6e6acSAndroid Build Coastguard Worker(Note: If configure fails, try running `./bootstrap.sh` first) 56*7ab6e6acSAndroid Build Coastguard Worker 57*7ab6e6acSAndroid Build Coastguard WorkerInvoking iperf3 58*7ab6e6acSAndroid Build Coastguard Worker--------------- 59*7ab6e6acSAndroid Build Coastguard Worker 60*7ab6e6acSAndroid Build Coastguard Workeriperf3 includes a manual page listing all of the command-line options. 61*7ab6e6acSAndroid Build Coastguard WorkerThe manual page is the most up-to-date reference to the various flags and parameters. 62*7ab6e6acSAndroid Build Coastguard Worker 63*7ab6e6acSAndroid Build Coastguard WorkerFor sample command line usage, see: 64*7ab6e6acSAndroid Build Coastguard Worker 65*7ab6e6acSAndroid Build Coastguard Workerhttps://fasterdata.es.net/performance-testing/network-troubleshooting-tools/iperf/ 66*7ab6e6acSAndroid Build Coastguard Worker 67*7ab6e6acSAndroid Build Coastguard WorkerUsing the default options, iperf is meant to show typical well 68*7ab6e6acSAndroid Build Coastguard Workerdesigned application performance. "Typical well designed application" 69*7ab6e6acSAndroid Build Coastguard Workermeans avoiding artificial enhancements that work only for testing 70*7ab6e6acSAndroid Build Coastguard Worker(such as splice()'ing the data to /dev/null). iperf does also have 71*7ab6e6acSAndroid Build Coastguard Workerflags for "extreme best case" optimizations, but they must be 72*7ab6e6acSAndroid Build Coastguard Workerexplicitly activated. 73*7ab6e6acSAndroid Build Coastguard Worker 74*7ab6e6acSAndroid Build Coastguard WorkerThese flags include: 75*7ab6e6acSAndroid Build Coastguard Worker 76*7ab6e6acSAndroid Build Coastguard Worker -Z, --zerocopy use a 'zero copy' sendfile() method of sending data 77*7ab6e6acSAndroid Build Coastguard Worker -A, --affinity n/n,m set CPU affinity 78*7ab6e6acSAndroid Build Coastguard Worker 79*7ab6e6acSAndroid Build Coastguard WorkerBug Reports 80*7ab6e6acSAndroid Build Coastguard Worker----------- 81*7ab6e6acSAndroid Build Coastguard Worker 82*7ab6e6acSAndroid Build Coastguard WorkerBefore submitting a bug report, please make sure you're running the 83*7ab6e6acSAndroid Build Coastguard Workerlatest version of the code, and confirm that your issue has not 84*7ab6e6acSAndroid Build Coastguard Workeralready been fixed. Then submit to the iperf3 issue tracker on 85*7ab6e6acSAndroid Build Coastguard WorkerGitHub: 86*7ab6e6acSAndroid Build Coastguard Worker 87*7ab6e6acSAndroid Build Coastguard Workerhttps://github.com/esnet/iperf/issues 88*7ab6e6acSAndroid Build Coastguard Worker 89*7ab6e6acSAndroid Build Coastguard WorkerIn your issue submission, please indicate the version of iperf3 and 90*7ab6e6acSAndroid Build Coastguard Workerwhat platform you're trying to run on (provide the platform 91*7ab6e6acSAndroid Build Coastguard Workerinformation even if you're not using a supported platform, we 92*7ab6e6acSAndroid Build Coastguard Worker*might* be able to help anyway). Exact command-line arguments will 93*7ab6e6acSAndroid Build Coastguard Workerhelp us recreate your problem. If you're getting error messages, 94*7ab6e6acSAndroid Build Coastguard Workerplease include them verbatim if possible, but remember to sanitize any 95*7ab6e6acSAndroid Build Coastguard Workersensitive information. 96*7ab6e6acSAndroid Build Coastguard Worker 97*7ab6e6acSAndroid Build Coastguard WorkerIf you have a question about usage or about the code, please do *not* 98*7ab6e6acSAndroid Build Coastguard Workersubmit an issue. Please use one of the mailing lists for that. 99*7ab6e6acSAndroid Build Coastguard Worker 100*7ab6e6acSAndroid Build Coastguard WorkerRelation to iperf 2.x 101*7ab6e6acSAndroid Build Coastguard Worker--------------------- 102*7ab6e6acSAndroid Build Coastguard Worker 103*7ab6e6acSAndroid Build Coastguard WorkerNote that iperf2 is no longer being developed by its original 104*7ab6e6acSAndroid Build Coastguard Workermaintainers. However, beginning in 2014, another developer began 105*7ab6e6acSAndroid Build Coastguard Workerfixing bugs and enhancing functionality, and generating releases of 106*7ab6e6acSAndroid Build Coastguard Workeriperf2. Both projects (as of late 2017) are currently being developed 107*7ab6e6acSAndroid Build Coastguard Workeractively, but independently. The continuing iperf2 development 108*7ab6e6acSAndroid Build Coastguard Workerproject can be found at https://sourceforge.net/projects/iperf2/. 109*7ab6e6acSAndroid Build Coastguard Worker 110*7ab6e6acSAndroid Build Coastguard Workeriperf3 contains a number of options and functions not present in 111*7ab6e6acSAndroid Build Coastguard Workeriperf2. In addition, some flags are changed from their iperf2 112*7ab6e6acSAndroid Build Coastguard Workercounterparts: 113*7ab6e6acSAndroid Build Coastguard Worker 114*7ab6e6acSAndroid Build Coastguard Worker -C, --linux-congestion set congestion control algorithm (Linux only) 115*7ab6e6acSAndroid Build Coastguard Worker (-Z in iperf2) 116*7ab6e6acSAndroid Build Coastguard Worker --bidir bidirectional testing mode 117*7ab6e6acSAndroid Build Coastguard Worker (-d in iperf2) 118*7ab6e6acSAndroid Build Coastguard Worker 119*7ab6e6acSAndroid Build Coastguard WorkerSome iperf2 options are not available in iperf3: 120*7ab6e6acSAndroid Build Coastguard Worker 121*7ab6e6acSAndroid Build Coastguard Worker -r, --tradeoff Do a bidirectional test individually 122*7ab6e6acSAndroid Build Coastguard Worker -T, --ttl time-to-live, for multicast (default 1) 123*7ab6e6acSAndroid Build Coastguard Worker -x, --reportexclude [CDMSV] exclude C(connection) D(data) M(multicast) 124*7ab6e6acSAndroid Build Coastguard Worker S(settings) V(server) reports 125*7ab6e6acSAndroid Build Coastguard Worker -y, --reportstyle C report as a Comma-Separated Values 126*7ab6e6acSAndroid Build Coastguard Worker 127*7ab6e6acSAndroid Build Coastguard WorkerAlso removed is the ability to set the options via environment 128*7ab6e6acSAndroid Build Coastguard Workervariables. 129*7ab6e6acSAndroid Build Coastguard Worker 130*7ab6e6acSAndroid Build Coastguard WorkerKnown Issues 131*7ab6e6acSAndroid Build Coastguard Worker------------ 132*7ab6e6acSAndroid Build Coastguard Worker 133*7ab6e6acSAndroid Build Coastguard WorkerA set of known issues is maintained on the iperf3 Web pages: 134*7ab6e6acSAndroid Build Coastguard Worker 135*7ab6e6acSAndroid Build Coastguard Workerhttps://software.es.net/iperf/dev.html#known-issues 136*7ab6e6acSAndroid Build Coastguard Worker 137*7ab6e6acSAndroid Build Coastguard WorkerLinks 138*7ab6e6acSAndroid Build Coastguard Worker----- 139*7ab6e6acSAndroid Build Coastguard Worker 140*7ab6e6acSAndroid Build Coastguard WorkerThis section lists links to user-contributed Web pages regarding 141*7ab6e6acSAndroid Build Coastguard Workeriperf3. ESnet and Lawrence Berkeley National Laboratory bear no 142*7ab6e6acSAndroid Build Coastguard Workerresponsibility for the content of these pages. 143*7ab6e6acSAndroid Build Coastguard Worker 144*7ab6e6acSAndroid Build Coastguard Worker* Installation instructions for Debian Linux (by Cameron Camp 145*7ab6e6acSAndroid Build Coastguard Worker <[email protected]>): 146*7ab6e6acSAndroid Build Coastguard Worker 147*7ab6e6acSAndroid Build Coastguard Worker http://cheatsheet.logicalwebhost.com/iperf-network-testing/ 148*7ab6e6acSAndroid Build Coastguard Worker 149*7ab6e6acSAndroid Build Coastguard WorkerCopyright 150*7ab6e6acSAndroid Build Coastguard Worker--------- 151*7ab6e6acSAndroid Build Coastguard Worker 152*7ab6e6acSAndroid Build Coastguard Workeriperf, Copyright (c) 2014-2020, The Regents of the University of 153*7ab6e6acSAndroid Build Coastguard WorkerCalifornia, through Lawrence Berkeley National Laboratory (subject 154*7ab6e6acSAndroid Build Coastguard Workerto receipt of any required approvals from the U.S. Dept. of 155*7ab6e6acSAndroid Build Coastguard WorkerEnergy). All rights reserved. 156*7ab6e6acSAndroid Build Coastguard Worker 157*7ab6e6acSAndroid Build Coastguard WorkerIf you have questions about your rights to use or distribute this 158*7ab6e6acSAndroid Build Coastguard Workersoftware, please contact Berkeley Lab's Technology Transfer 159*7ab6e6acSAndroid Build Coastguard WorkerDepartment at [email protected]. 160*7ab6e6acSAndroid Build Coastguard Worker 161*7ab6e6acSAndroid Build Coastguard WorkerNOTICE. This software is owned by the U.S. Department of Energy. 162*7ab6e6acSAndroid Build Coastguard WorkerAs such, the U.S. Government has been granted for itself and others 163*7ab6e6acSAndroid Build Coastguard Workeracting on its behalf a paid-up, nonexclusive, irrevocable, 164*7ab6e6acSAndroid Build Coastguard Workerworldwide license in the Software to reproduce, prepare derivative 165*7ab6e6acSAndroid Build Coastguard Workerworks, and perform publicly and display publicly. Beginning five 166*7ab6e6acSAndroid Build Coastguard Worker(5) years after the date permission to assert copyright is obtained 167*7ab6e6acSAndroid Build Coastguard Workerfrom the U.S. Department of Energy, and subject to any subsequent 168*7ab6e6acSAndroid Build Coastguard Workerfive (5) year renewals, the U.S. Government is granted for itself 169*7ab6e6acSAndroid Build Coastguard Workerand others acting on its behalf a paid-up, nonexclusive, 170*7ab6e6acSAndroid Build Coastguard Workerirrevocable, worldwide license in the Software to reproduce, 171*7ab6e6acSAndroid Build Coastguard Workerprepare derivative works, distribute copies to the public, perform 172*7ab6e6acSAndroid Build Coastguard Workerpublicly and display publicly, and to permit others to do so. 173*7ab6e6acSAndroid Build Coastguard Worker 174*7ab6e6acSAndroid Build Coastguard WorkerThis code is distributed under a BSD style license, see the LICENSE 175*7ab6e6acSAndroid Build Coastguard Workerfile for complete information. 176