iperf3 with tls support
When the client process gets interrupted, both the client and server dump out accumulated interval statistics, as well as a partial set of summary statistics (basically each side dumps what it has, but without the exchange of information that usually happens at the end of a normal run). If the server process gets interrupted, the server dumps out its accumulated interval and summary statistics as above. The client does this as well in the -R case, but exits with a "Broken pipe" in the non -R case (this behavior was present all along; it was not introduced in this change). More investigation will be needed to understand the client behavior. Bump copyright dates in a few places. Issue: 132 (signal handler for API calls) Discussed with: aaron@internet2.edu |
||
---|---|---|
config | ||
examples | ||
src | ||
aclocal.m4 | ||
AUTHORS | ||
bootstrap.sh | ||
configure | ||
configure.ac | ||
INSTALL | ||
LICENSE | ||
make_release | ||
Makefile.am | ||
Makefile.in | ||
README | ||
RELEASE_NOTES | ||
test_commands.sh | ||
TODO |
= Summary = iperf3 is a tool for measuring achievable bandwidth on IP networks. iperf3 is NOT backwards compatible with the original iperf. Supported platforms: * Linux * FreeBSD * Mac OSX = Building iperf3 = == Prerequisites: == * libuuid: this is not installed by default for Debian/Ubuntu Systems to install: apt-get install uuid-dev == Building == ./configure; make; make install (Note: If configure fails, try running ./bootstrap.sh first) = Latest version = To check out the most recent code, do: hg clone http://code.google.com/p/iperf/ = Bug Reports = Before submitting a bug report, try checking out the latest version of the code, and confirm that its not already fixed. Then submit to: https://code.google.com/p/iperf/issues/list For more information see: http://code.google.com/p/iperf/ = Changes from iperf 2.x = New options: -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 Deprecated options: Plan to add for the next release: -Z, --linux-congestion <algo> set TCP congestion control algorithm (Linux only) Not planning to support. 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 -N, --nodelay set TCP no delay, disabling Nagle's Algorithm -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 variables. For sample command line usage, see: http://fasterdata.es.net/performance-testing/network-troubleshooting-tools/iperf-and-iperf3/ Using the default options, iperf is meant to show typical well 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 explicitly activated. These flags include: -Z, --zerocopy use a 'zero copy' sendfile() method of sending data -A, --affinity n/n,m set CPU affinity = Known Issues = * UDP performance: iperf2/iperf3 both only are only about 50% as fast as nuttcp in UDP mode. We are looking into this, but in the meantime, if you want to get UDP above 5Gbps, we recommend using nuttcp instead (http://www.nuttcp.net/) * Interval reports on high-loss networks: The way iperf3 is currently implemented, the sender write command will block until the entire block has been written. This means that it might take several seconds to send a full block if the network has high loss, and the interval reports will have widely varying interval times. We are trying to determine the best solution to this, but in the meantime, try using a smaller block size if you get strange interval reports. For example, try "-l 4K".