--- embedaddon/iperf/README.md 2016/10/18 13:28:17 1.1.1.1 +++ embedaddon/iperf/README.md 2021/03/17 00:36:45 1.1.1.2 @@ -7,34 +7,27 @@ Summary iperf is a tool for active measurements of the maximum achievable bandwidth on IP networks. It supports tuning of various parameters related to timing, protocols, and buffers. For each test it reports -the bandwidth, loss, and other parameters. +the measured throughput / bitrate, loss, and other parameters. This version, sometimes referred to as iperf3, is a redesign of an original version developed at NLANR/DAST. iperf3 is a new implementation from scratch, with the goal of a smaller, simpler code base, and a library version of the functionality that can be used in -other programs. iperf3 also a number of features found in other tools +other programs. iperf3 also has a number of features found in other tools such as nuttcp and netperf, but were missing from the original iperf. These include, for example, a zero-copy mode and optional JSON output. Note that iperf3 is *not* backwards compatible with the original iperf. Primary development for iperf3 takes place on CentOS Linux, FreeBSD, -and MacOS X. At this time, these are the only officially supported +and macOS. At this time, these are the only officially supported platforms, however there have been some reports of success with OpenBSD, NetBSD, Android, Solaris, and other Linux distributions. iperf3 is principally developed by ESnet / Lawrence Berkeley National Laboratory. It is released under a three-clause BSD license. -Note that at this point, ESnet plans to support iperf3 in "maintenance -mode". At this point, there are no definite plans for further iperf3 -releases, and ESnet will be providing a very limited amount of -resources for support and development, going forward. However, ESnet -could issue new iperf3 releases to deal with security issues or -high-impact bug fixes. +For more information see: https://software.es.net/iperf -For more information see: http://software.es.net/iperf - Source code and issue tracker: https://github.com/esnet/iperf Obtaining iperf3 @@ -42,7 +35,7 @@ Obtaining iperf3 Downloads of iperf3 are available at: - http://downloads.es.net/pub/iperf/ + https://downloads.es.net/pub/iperf/ To check out the most recent code, clone the git repository at: @@ -69,13 +62,13 @@ The manual page is the most up-to-date reference to th For sample command line usage, see: -http://fasterdata.es.net/performance-testing/network-troubleshooting-tools/iperf-and-iperf3/ +https://fasterdata.es.net/performance-testing/network-troubleshooting-tools/iperf/ Using the default options, iperf is meant to show typical well -designed application performance. 'Typical well designed application' +designed application performance. "Typical well designed application" means avoiding artificial enhancements that work only for testing (such as splice()'ing the data to /dev/null). iperf does also have -flags for 'extreme best case' optimizations but they must be +flags for "extreme best case" optimizations, but they must be explicitly activated. These flags include: @@ -104,81 +97,43 @@ sensitive information. If you have a question about usage or about the code, please do *not* submit an issue. Please use one of the mailing lists for that. -Changes from iperf 2.x ----------------------- +Relation to iperf 2.x +--------------------- -New options: +Note that iperf2 is no longer being developed by its original +maintainers. However, beginning in 2014, another developer began +fixing bugs and enhancing functionality, and generating releases of +iperf2. Both projects (as of late 2017) are currently being developed +actively, but independently. The continuing iperf2 development +project can be found at https://sourceforge.net/projects/iperf2/. - -V, --verbose more detailed output than before - -J, --json output in JSON format - -Z, --zerocopy use a 'zero copy' sendfile() method of sending data - -O, --omit N omit the first n seconds (to ignore slowstart) - -T, --title str prefix every output line with this string - -F, --file name xmit/recv the specified file - -A, --affinity n/n,m set CPU affinity (Linux and FreeBSD only) - -k, --blockcount #[KMG] number of blocks (packets) to transmit (instead - of -t or -n) - -L, --flowlabel set IPv6 flow label (Linux only) +iperf3 contains a number of options and functions not present in +iperf2. In addition, some flags are changed from their iperf2 +counterparts: -Changed flags: - -C, --linux-congestion set congestion control algorithm (Linux only) (-Z in iperf2) + --bidir bidirectional testing mode + (-d in iperf2) +Some iperf2 options are not available in iperf3: -Deprecated options: - -Not planning to support these iperf2 flags. If you really miss these -options, please submit a request in the issue tracker: - - -d, --dualtest Do a bidirectional test simultaneously -r, --tradeoff Do a bidirectional test individually -T, --ttl time-to-live, for multicast (default 1) -x, --reportexclude [CDMSV] exclude C(connection) D(data) M(multicast) S(settings) V(server) reports -y, --reportstyle C report as a Comma-Separated Values -Also deprecated is the ability to set the options via environment +Also removed is the ability to set the options via environment variables. Known Issues ------------ -* UDP performance: Some problems have been noticed with iperf3 on the -ESnet 100G testbed at high UDP rates (above 10Gbps). The symptom is -that on any particular run of iperf3 the receiver reports a loss rate -of about 20%, regardless of the -b option used on the client side. -This problem appears not to be iperf3-specific, and may be due to the -placement of the iperf3 process on a CPU and its relation to the -inbound NIC. In some cases this problem can be mitigated by an -appropriate use of the CPU affinity (-A) option. (Issue #55) +A set of known issues is maintained on the iperf3 Web pages: -* The -Z flag sometimes causes the iperf3 client to hang on OSX. -(Issue #129) +https://software.es.net/iperf/dev.html#known-issues -* When specifying the socket buffer size using the "-w" flag on Linux, Linux -doubles the value you pass in. (You can see this using iperf3's debug flag). -But then the CWND does not actually ramp up to the doubled value, but only -to about 75% of the doubled value. This appears to be by design. - -* Although the "-w" flag is documented as setting the (TCP) window -size, it is also used to set the socket buffer size. This has been -shown to be helpful with high-bitrate UDP tests. - -* On some platforms, it might be necessary to invoke "ldconfig" -manually after doing a "make install" before the iperf3 executable can -find its shared library. (Issue #153) - -* The results printed on the server side at the end of a test do not -correctly reflect the client-side measurements. This is due to the -ordering of computing and transferring results between the client -and server. (Issue #293) - -* The server could have a very short measurement reporting interval at -the end of a test (particularly a UDP test), containing few or no -packets. This issue is due to an artifact of timing between the -client and server. (Issue #278) - Links ----- @@ -194,7 +149,7 @@ responsibility for the content of these pages. Copyright --------- -iperf, Copyright (c) 2014-2016, The Regents of the University of +iperf, Copyright (c) 2014-2020, The Regents of the University of California, through Lawrence Berkeley National Laboratory (subject to receipt of any required approvals from the U.S. Dept. of Energy). All rights reserved.