Annotation of embedaddon/iperf/README.md, revision 1.1.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>