Basic iPerf usage.
iPerf is a network bandwidth testing tool that measures bandwidth between machines during a (default) 10 second test period. Results are reported in
Mbits/sec but can be adjusted via the
The first thing one needs to do to use iPerf is initiate an iPerf server on one machine using the
-s flag like this:
And on another client machine, initiate a client connection with the
-c flag to the server setup in the first step; replace
[ip or hostname of server] with the actual IP address or hostname of the server being connected to:
iperf -c [ip or hostname of server]
This is a one way connection test between client and server so if there is a need to test speed in the other direction, the steps need to be swapped between machines; client becomes server and server becomes client.
Bandwidth output options.
Bandwidth output options via the
-f flag; default is
'b' = bits/sec 'k' = Kbits/sec 'm' = Mbits/sec 'B' = Bytes/sec 'K' = KBytes/sec 'M' = MBytes/sec
Some advanced iPerf examples.
Start the server with port
iperf -s -p 65000
Client machine connects to the server (above) with port
iperf -c [ip or hostname of server] -p 65000
Set the interval to be 2 seconds between tests:
iperf -c [ip or hostname of server] -i 2
Set the interval to be 2 seconds between tests and set the time in seconds to transmit 60 seconds (instead of the default 10 seconds)
iperf -c [ip or hostname of server] -i 2 -t 60
Set the interval to be 2 seconds between tests and run it as a dual test to/from server:
iperf -c [ip or hostname of server] -i 2 -d
Set the interval to be 2 seconds between tests, run it as a dual test to/from server and set the time in seconds to transmit 60 seconds (instead of the default 10 seconds):
iperf -c [ip or hostname of server] -i 2 -d -t 60
The man page for iPerf.
IPERF(1) User Manuals IPERF(1) NAME iperf - perform network throughput tests SYNOPSIS iperf -s [ options ] iperf -c server [ options ] iperf -u -s [ options ] iperf -u -c server [ options ] DESCRIPTION iperf is a tool for performing network throughput measurements. It can test either TCP or UDP throughput. To perform an iperf test the user must establish both a server (to discard traffic) and a client (to gen- erate traffic). GENERAL OPTIONS -f, --format [kmKM] format to report: Kbits, Mbits, KBytes, MBytes -h, --help print a help synopsis -i, --interval n pause n seconds between periodic bandwidth reports -l, --len n[KM] set length read/write buffer to n (default 8 KB) -m, --print_mss print TCP maximum segment size (MTU - TCP/IP header) -o, --output <filename> output the report or error message to this specified file -p, --port n set server port to listen on/connect to to n (default 5001) -u, --udp use UDP rather than TCP -w, --window n[KM] TCP window size (socket buffer size) -B, --bind <host> bind to <host>, an interface or multicast address -C, --compatibility for use with older versions does not sent extra msgs -M, --mss n set TCP maximum segment size (MTU - 40 bytes) -N, --nodelay set TCP no delay, disabling Nagle's Algorithm -v, --version print version information and quit -V, --IPv6Version Set the domain to IPv6 -x, --reportexclude [CDMSV] exclude C(connection) D(data) M(multicast) S(settings) V(server) reports -y, --reportstyle C|c if set to C or c report results as CSV (comma separated values) SERVER SPECIFIC OPTIONS -s, --server run in server mode -U, --single_udp run in single threaded UDP mode -D, --daemon run the server as a daemon CLIENT SPECIFIC OPTIONS -b, --bandwidth n[KM] set target bandwidth to n bits/sec (default 1 Mbit/sec). This setting requires UDP (-u). -c, --client <host> run in client mode, connecting to <host> -d, --dualtest Do a bidirectional test simultaneously -n, --num n[KM] number of bytes to transmit (instead of -t) -r, --tradeoff Do a bidirectional test individually -t, --time n time in seconds to transmit for (default 10 secs) -F, --fileinput <name> input the data to be transmitted from a file -I, --stdin input the data to be transmitted from stdin -L, --listenport n port to recieve bidirectional tests back on -P, --parallel n number of parallel client threads to run -T, --ttl n time-to-live, for multicast (default 1) -Z, --linux-congestion <algo> set TCP congestion control algorithm (Linux only) ENVIRONMENT TCP_WINDOW_SIZE Controls the size of TCP buffers. DIAGNOSTICS This section needs to be filled in. BUGS Exit statuses are inconsistent. The threading implementation is rather heinous. AUTHORS Iperf was originally written by Mark Gates and Alex Warshavsky. Man page and maintence by Jon Dugan <jdugan at x1024 dot net>. Other con- tributions from Ajay Tirumala, Jim Ferguson, Feng Qin, Kevin Gibbs, John Estabrook <jestabro at ncsa.uiuc.edu>, Andrew Gallatin <gallatin at gmail.com>, Stephen Hemminger <shemminger at linux-foundation.org> SEE ALSO http://iperf.sourceforge.net/ NLANR/DAST APRIL 2008 IPERF(1)