Annotation of embedaddon/iperf/README.md, revision 1.1
1.1 ! misho 1: iperf3: A TCP, UDP, and SCTP network bandwidth measurement tool
! 2: ================================================================
! 3:
! 4: Summary
! 5: -------
! 6:
! 7: iperf is a tool for active measurements of the maximum achievable
! 8: bandwidth on IP networks. It supports tuning of various parameters
! 9: related to timing, protocols, and buffers. For each test it reports
! 10: the bandwidth, loss, and other parameters.
! 11:
! 12: This version, sometimes referred to as iperf3, is a redesign of an
! 13: original version developed at NLANR/DAST. iperf3 is a new
! 14: implementation from scratch, with the goal of a smaller, simpler code
! 15: base, and a library version of the functionality that can be used in
! 16: other programs. iperf3 also a number of features found in other tools
! 17: such as nuttcp and netperf, but were missing from the original iperf.
! 18: These include, for example, a zero-copy mode and optional JSON output.
! 19: Note that iperf3 is *not* backwards compatible with the original iperf.
! 20:
! 21: Primary development for iperf3 takes place on CentOS Linux, FreeBSD,
! 22: and MacOS X. At this time, these are the only officially supported
! 23: platforms, however there have been some reports of success with
! 24: OpenBSD, NetBSD, Android, Solaris, and other Linux distributions.
! 25:
! 26: iperf3 is principally developed by ESnet / Lawrence Berkeley National
! 27: Laboratory. It is released under a three-clause BSD license.
! 28:
! 29: Note that at this point, ESnet plans to support iperf3 in "maintenance
! 30: mode". At this point, there are no definite plans for further iperf3
! 31: releases, and ESnet will be providing a very limited amount of
! 32: resources for support and development, going forward. However, ESnet
! 33: could issue new iperf3 releases to deal with security issues or
! 34: high-impact bug fixes.
! 35:
! 36: For more information see: http://software.es.net/iperf
! 37:
! 38: Source code and issue tracker: https://github.com/esnet/iperf
! 39:
! 40: Obtaining iperf3
! 41: ----------------
! 42:
! 43: Downloads of iperf3 are available at:
! 44:
! 45: http://downloads.es.net/pub/iperf/
! 46:
! 47: To check out the most recent code, clone the git repository at:
! 48:
! 49: https://github.com/esnet/iperf.git
! 50:
! 51: Building iperf3
! 52: ---------------
! 53:
! 54: ### Prerequisites: ###
! 55:
! 56: None.
! 57:
! 58: ### Building ###
! 59:
! 60: ./configure; make; make install
! 61:
! 62: (Note: If configure fails, try running `./bootstrap.sh` first)
! 63:
! 64: Invoking iperf3
! 65: ---------------
! 66:
! 67: iperf3 includes a manual page listing all of the command-line options.
! 68: The manual page is the most up-to-date reference to the various flags and parameters.
! 69:
! 70: For sample command line usage, see:
! 71:
! 72: http://fasterdata.es.net/performance-testing/network-troubleshooting-tools/iperf-and-iperf3/
! 73:
! 74: Using the default options, iperf is meant to show typical well
! 75: designed application performance. 'Typical well designed application'
! 76: means avoiding artificial enhancements that work only for testing
! 77: (such as splice()'ing the data to /dev/null). iperf does also have
! 78: flags for 'extreme best case' optimizations but they must be
! 79: explicitly activated.
! 80:
! 81: These flags include:
! 82:
! 83: -Z, --zerocopy use a 'zero copy' sendfile() method of sending data
! 84: -A, --affinity n/n,m set CPU affinity
! 85:
! 86: Bug Reports
! 87: -----------
! 88:
! 89: Before submitting a bug report, please make sure you're running the
! 90: latest version of the code, and confirm that your issue has not
! 91: already been fixed. Then submit to the iperf3 issue tracker on
! 92: GitHub:
! 93:
! 94: https://github.com/esnet/iperf/issues
! 95:
! 96: In your issue submission, please indicate the version of iperf3 and
! 97: what platform you're trying to run on (provide the platform
! 98: information even if you're not using a supported platform, we
! 99: *might* be able to help anyway). Exact command-line arguments will
! 100: help us recreate your problem. If you're getting error messages,
! 101: please include them verbatim if possible, but remember to sanitize any
! 102: sensitive information.
! 103:
! 104: If you have a question about usage or about the code, please do *not*
! 105: submit an issue. Please use one of the mailing lists for that.
! 106:
! 107: Changes from iperf 2.x
! 108: ----------------------
! 109:
! 110: New options:
! 111:
! 112: -V, --verbose more detailed output than before
! 113: -J, --json output in JSON format
! 114: -Z, --zerocopy use a 'zero copy' sendfile() method of sending data
! 115: -O, --omit N omit the first n seconds (to ignore slowstart)
! 116: -T, --title str prefix every output line with this string
! 117: -F, --file name xmit/recv the specified file
! 118: -A, --affinity n/n,m set CPU affinity (Linux and FreeBSD only)
! 119: -k, --blockcount #[KMG] number of blocks (packets) to transmit (instead
! 120: of -t or -n)
! 121: -L, --flowlabel set IPv6 flow label (Linux only)
! 122:
! 123: Changed flags:
! 124:
! 125: -C, --linux-congestion set congestion control algorithm (Linux only)
! 126: (-Z in iperf2)
! 127:
! 128:
! 129: Deprecated options:
! 130:
! 131: Not planning to support these iperf2 flags. If you really miss these
! 132: options, please submit a request in the issue tracker:
! 133:
! 134: -d, --dualtest Do a bidirectional test simultaneously
! 135: -r, --tradeoff Do a bidirectional test individually
! 136: -T, --ttl time-to-live, for multicast (default 1)
! 137: -x, --reportexclude [CDMSV] exclude C(connection) D(data) M(multicast)
! 138: S(settings) V(server) reports
! 139: -y, --reportstyle C report as a Comma-Separated Values
! 140:
! 141: Also deprecated is the ability to set the options via environment
! 142: variables.
! 143:
! 144: Known Issues
! 145: ------------
! 146:
! 147: * UDP performance: Some problems have been noticed with iperf3 on the
! 148: ESnet 100G testbed at high UDP rates (above 10Gbps). The symptom is
! 149: that on any particular run of iperf3 the receiver reports a loss rate
! 150: of about 20%, regardless of the -b option used on the client side.
! 151: This problem appears not to be iperf3-specific, and may be due to the
! 152: placement of the iperf3 process on a CPU and its relation to the
! 153: inbound NIC. In some cases this problem can be mitigated by an
! 154: appropriate use of the CPU affinity (-A) option. (Issue #55)
! 155:
! 156: * The -Z flag sometimes causes the iperf3 client to hang on OSX.
! 157: (Issue #129)
! 158:
! 159: * When specifying the socket buffer size using the "-w" flag on Linux, Linux
! 160: doubles the value you pass in. (You can see this using iperf3's debug flag).
! 161: But then the CWND does not actually ramp up to the doubled value, but only
! 162: to about 75% of the doubled value. This appears to be by design.
! 163:
! 164: * Although the "-w" flag is documented as setting the (TCP) window
! 165: size, it is also used to set the socket buffer size. This has been
! 166: shown to be helpful with high-bitrate UDP tests.
! 167:
! 168: * On some platforms, it might be necessary to invoke "ldconfig"
! 169: manually after doing a "make install" before the iperf3 executable can
! 170: find its shared library. (Issue #153)
! 171:
! 172: * The results printed on the server side at the end of a test do not
! 173: correctly reflect the client-side measurements. This is due to the
! 174: ordering of computing and transferring results between the client
! 175: and server. (Issue #293)
! 176:
! 177: * The server could have a very short measurement reporting interval at
! 178: the end of a test (particularly a UDP test), containing few or no
! 179: packets. This issue is due to an artifact of timing between the
! 180: client and server. (Issue #278)
! 181:
! 182: Links
! 183: -----
! 184:
! 185: This section lists links to user-contributed Web pages regarding
! 186: iperf3. ESnet and Lawrence Berkeley National Laboratory bear no
! 187: responsibility for the content of these pages.
! 188:
! 189: * Installation instructions for Debian Linux (by Cameron Camp
! 190: <cameron@ivdatacenter.com>):
! 191:
! 192: http://cheatsheet.logicalwebhost.com/iperf-network-testing/
! 193:
! 194: Copyright
! 195: ---------
! 196:
! 197: iperf, Copyright (c) 2014-2016, The Regents of the University of
! 198: California, through Lawrence Berkeley National Laboratory (subject
! 199: to receipt of any required approvals from the U.S. Dept. of
! 200: Energy). All rights reserved.
! 201:
! 202: If you have questions about your rights to use or distribute this
! 203: software, please contact Berkeley Lab's Technology Transfer
! 204: Department at TTD@lbl.gov.
! 205:
! 206: NOTICE. This software is owned by the U.S. Department of Energy.
! 207: As such, the U.S. Government has been granted for itself and others
! 208: acting on its behalf a paid-up, nonexclusive, irrevocable,
! 209: worldwide license in the Software to reproduce, prepare derivative
! 210: works, and perform publicly and display publicly. Beginning five
! 211: (5) years after the date permission to assert copyright is obtained
! 212: from the U.S. Department of Energy, and subject to any subsequent
! 213: five (5) year renewals, the U.S. Government is granted for itself
! 214: and others acting on its behalf a paid-up, nonexclusive,
! 215: irrevocable, worldwide license in the Software to reproduce,
! 216: prepare derivative works, distribute copies to the public, perform
! 217: publicly and display publicly, and to permit others to do so.
! 218:
! 219: This code is distributed under a BSD style license, see the LICENSE
! 220: file for complete information.
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>