91 lines
3.4 KiB
Plaintext
91 lines
3.4 KiB
Plaintext
= 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".
|
|
|
|
|
|
|