iperf3
Perform network throughput tests
Syntax:
iperf3 -s [ options ]
iperf3 -c server [ options ]
Runs on:
QNX OS
Options:
- -B host
- --bind host
- Bind to a specific interface.
- -d
- --debug
- Emit debugging output. Primarily (perhaps exclusively) of use to developers.
- -F name
- --file name
- Client-side: read from the file and write to the network, instead of using random data. Server-side: read from the network and write to the file, instead of throwing the data away.
- -f k|m|K|M
- --format k|m|K|M
- The format to report: Kbits, Mbits, KBytes, MBytes.
- -h
- --help
- Show a help synopsis.
- -i n
- --interval n
- Pause for n seconds between periodic bandwidth reports. The default is 1; use 0 to disable.
- -J
- --json
- Output in JSON format.
- --logfile file
- Send output to a log file.
- -p n
- --port n
- Set the server port to listen on or connect to to n (default 5201).
- --rcv-timeout n
- Set the idle timeout for receiving data during active tests. The receiver halts a test if no data is received from the sender for this number of ms (default is 12000 ms, or 2 minutes).
- --snd-timeout n
- Set the timeout for unacknowledged TCP data (on both test and control connections). This option can be used to force a faster test timeout in case of a network partition during a test. The required parameter is specified in ms, and defaults to the system settings. This functionality depends on the TCP_USER_TIMEOUT socket option, and does not work on systems that do not support it.
- --timestamps [=format]
- Prepend a timestamp at the start of each output line. By default, timestamps have the format emitted by ctime(). Optionally, = followed by a format specification can be passed to customize the timestamps, see strftime(). If this optional format is given, the = must immediately follow --timestamp with no intervening whitespace.
- -V
- --verbose
- Give more detailed output.
- -v
- --version
- Show version information, and then quit.
- -1
- --one-off
- Handle one client connection, then exit.
- -D
- --daemon
- Run the server in background as a daemon.
- -I file
- --pidfile file
- Write a file with the process ID, most useful when running as a daemon.
- --idle-timeout n
- Restart the server after n seconds in case it gets stuck. In one-off mode, this is the number of seconds the server waits before exiting.
- -s
- --server
- Run in server mode.
- --server-bitrate-limit n[K|M|G|T]
- Set a limit on the server side that causes a test to abort if the client specifies a test of more than n bits per second, or if the average data sent or received by the client (including all data streams) is greater than n bits per second. The default limit is zero, which implies no limit. The interval over which to average the data rate is 5 seconds by default, but can be specified by adding a / (forward slash) and a number to the bitrate specifier.
- --time-skew-threshold seconds
- Set the time skew threshold (in seconds) between the server and client during the authentication process.
- -4
- --version4
- Use only IPv4.
- -6
- --version6
- Use only IPv6.
- -b n[K|M]
- --bitrate n[K|M]
- Set the target bitrate to n bits/sec (default 1 Mbit/sec for UDP, unlimited
for TCP or SCTP). If there are multiple streams (-P flag), the
throughput limit is applied separately to each stream.
You can also add a
/
and a number to the bitrate specifier. This is called burst mode. It sends the given number of packets without pausing, even if that temporarily exceeds the specified throughput limit. Setting the target bitrate to 0 disables bitrate limits (which particularly useful for UDP tests). This throughput limit is implemented internally inside iperf3.This option replaces --bandwidth, which is deprecated.
- --bidir
- Test in both directions (normal and reverse), with both the client and server sending and receiving data simultaneously.
- -c host
- --client host
- Run in client mode, connecting to the specified server. By default, a test consists of sending data from the client to the server, unless you specify -R.
- --connect-timeout number
- Set the timeout for establishing the initial control connection to the server, in milliseconds. The default behavior is the operating system's timeout for TCP connection establishment. Providing a shorter value may speed up detection that an iperf3 server is down.
- --cport port
- Bind data streams to a specific client port (for TCP and UDP only, default is to use an ephemeral port).
- --dont-fragment
- Set the IPv4 Don't Fragment (DF) bit on outgoing packets. Only applicable to tests doing UDP over IPv4.
- --get-server-output
- Get the output from the server. The output format is determined by the server (in particular, if the server was invoked with the --json flag, the output will be in JSON format, otherwise it will be in human-readable format). If the client is run with --json, the server output is included in a JSON object; otherwise it's appended at the bottom of the human-readable output.
- -k n[K|M]
- --blockcount n[K|M]
- The number of blocks (packets) to transmit (instead of -t or -n).
- -l n[K|M]
- --length n[K|M]
- The length of buffer to read or write (default 128 KB for TCP, 8 KB for UDP).
- -M n
- --set-mss n
- Set the TCP/SCTP maximum segment size (MTU - 40 bytes).
- -N
- --no-delay
- Set TCP/SCTP no delay, disabling Nagle's Algorithm.
- -n n[K|M]
- --bytes n[K|M]
- The number of bytes to transmit (instead of -t).
- --nstreams n
- Set the number of SCTP streams.
- -O n
- --omit n
- Omit the first n seconds of the test, to skip past the TCP slow-start period.
- -P n
- --parallel n
- The number of parallel client streams to run.
- --pacing-timer n[K|M|G]
-
Set pacing timer interval, in microseconds (default is 1000 microseconds, or 1 ms). This option controls iperf3's internal pacing timer for the -b (or --bitrate) option. The timer fires at the interval set by this parameter. Smaller values of the pacing timer parameter smooth out the traffic emitted by iperf3, but potentially at the cost of performance due to more frequent timer processing.
- -R
- --reverse
- Run in reverse mode (server sends, client receives).
- -S n
- --tos n
- Set the IP
type of service.
- --sctp
- Use SCTP rather than TCP.
- -T str
- --title str
- Prefix every output line with this string.
- -t n
- --time n
- The time in seconds to transmit for (default 10 secs).
- -u
- --udp
- Use UDP rather than TCP.
- -w n[K|M]
- --window n[K|M]
- The window size / socket buffer size (this gets sent to the server and used on that side too).
- -X name
- --xbind name
- Bind SCTP associations to a specific subset of links using sctp_bindx(). The -B flag is ignored if you specify this flag. Normally SCTP will include the protocol addresses of all active links on the local host when setting up an association. Specifying at least one -X name disabled this behavior. You must specify this flag for each link to be included in the association; it's supported for both iperf servers and clients (the latter are supported by passing the first -X argument to bind()). Hostnames are accepted as arguments and are resolved using getaddrinfo(). If you specify the -4 or -6 flag, names that don't resolve to addresses within the specified protocol family are ignored.
- -Z
- --zerocopy
- Use a
zero copy
method of sending data, such as sendfile(), instead of the usual write().
Description:
The iperf3 tool measures network throughput. It can test either TCP or UDP throughput. To perform an iperf3 test the user must establish both a server and a client.
For a different version of this tool, see iperf2.
Contributing author:
http://software.es.net/iperf A list of the contributors to iperf3 can be found within the documentation located at http://software.es.net/iperf/dev.html#authors.