1IPERF3(1)                        User Manuals                        IPERF3(1)
2
3
4

NAME

6       iperf3 - perform network throughput tests
7

SYNOPSIS

9       iperf3 -s [ options ]
10       iperf3 -c server [ options ]
11
12

DESCRIPTION

14       iperf3  is  a  tool for performing network throughput measurements.  It
15       can test either TCP or UDP throughput.  To perform an iperf3  test  the
16       user must establish both a server and a client.
17
18

GENERAL OPTIONS

20       -p, --port n
21              set server port to listen on/connect to to n (default 5201)
22
23       -f, --format
24              [kmKM]   format to report: Kbits, Mbits, KBytes, MBytes
25
26       -i, --interval n
27              pause  n  seconds between periodic bandwidth reports; default is
28              1, use 0 to disable
29
30       -F, --file name
31              client-side: read from  the  file  and  write  to  the  network,
32              instead of using random data; server-side: read from the network
33              and write to the file, instead of throwing the data away
34
35       -A, --affinity n/n,m
36              Set the CPU affinity, if possible (Linux and FreeBSD only).   On
37              both  the  client  and  server you can set the local affinity by
38              using the n form of this argument (where n is a CPU number).  In
39              addition,  on  the  client  side  you  can override the server's
40              affinity for just that one test, using the n,m form of argument.
41              Note  that when using this feature, a process will only be bound
42              to a single CPU (as opposed to a set containing potentialy  mul‐
43              tiple CPUs).
44
45       -B, --bind host
46              bind to a specific interface
47
48       -V, --verbose
49              give more detailed output
50
51       -J, --json
52              output in JSON format
53
54       --logfile file
55              send output to a log file.
56
57       --forceflush
58              force  flushing output at every interval.  Used to avoid buffer‐
59              ing when sending output to pipe.
60
61       -d, --debug
62              emit debugging output.  Primarily (perhaps exclusively)  of  use
63              to developers.
64
65       -v, --version
66              show version information and quit
67
68       -h, --help
69              show a help synopsis
70
71

SERVER SPECIFIC OPTIONS

73       -s, --server
74              run in server mode
75
76       -D, --daemon
77              run the server in background as a daemon
78
79       -I, --pidfile file
80              write  a file with the process ID, most useful when running as a
81              daemon.
82
83       -1, --one-off
84              handle one client connection, then exit.
85
86

CLIENT SPECIFIC OPTIONS

88       -c, --client host
89              run in client mode, connecting to the specified server
90
91       --sctp use SCTP rather than TCP (FreeBSD and Linux)
92
93       -u, --udp
94              use UDP rather than TCP
95
96       -b, --bandwidth n[KM]
97              set target bandwidth to n bits/sec (default 1 Mbit/sec for  UDP,
98              unlimited  for  TCP).   If there are multiple streams (-P flag),
99              the bandwidth limit is applied separately to each  stream.   You
100              can  also  add  a  '/'  and a number to the bandwidth specifier.
101              This is called "burst mode".  It will send the given  number  of
102              packets  without  pausing,  even if that temporarily exceeds the
103              specified bandwidth limit.  Setting the target  bandwidth  to  0
104              will  disable  bandwidth  limits  (particularly  useful  for UDP
105              tests).  This bandwidth limit is implemented  internally  inside
106              iperf3,  and  is  available  on all platforms.  Compare with the
107              --fq-rate flag.
108
109       --fq-rate n[KM]
110              Set a rate to be used with fair-queueing based socket-level pac‐
111              ing,  in bits per second.  This pacing (if specified) will be in
112              addition to any pacing due to iperf3's internal bandwidth pacing
113              (-b  flag),  and  both can be specified for the same test.  Only
114              available on platforms supporting the SO_MAX_PACING_RATE  socket
115              option  (currently only Linux).  The default is no fair-queueing
116              based pacing.
117
118       --no-fq-socket-pacing
119              This option is deprecated and will be removed.  It is equivalent
120              to specifying --fq-rate=0.
121
122       -t, --time n
123              time in seconds to transmit for (default 10 secs)
124
125       -n, --bytes n[KM]
126              number of bytes to transmit (instead of -t)
127
128       -k, --blockcount n[KM]
129              number of blocks (packets) to transmit (instead of -t or -n)
130
131       -l, --length n[KM]
132              length  of  buffer to read or write.  For TCP tests, the default
133              value is 128KB.  In the case of UDP, iperf3 tries to dynamically
134              determine  a  reasonable  sending size based on the path MTU; if
135              that cannot be determined it uses 1460 bytes as a sending  size.
136              For SCTP tests, the default size is 64KB.
137
138       --cport port
139              bind  data  streams  to  a specific client port (for TCP and UDP
140              only, default is to use an ephemeral port)
141
142       -P, --parallel n
143              number of parallel client streams to run
144
145       -R, --reverse
146              run in reverse mode (server sends, client receives)
147
148       -w, --window n[KM]
149              window size / socket buffer size (this gets sent to  the  server
150              and used on that side too)
151
152       -M, --set-mss n
153              set TCP/SCTP maximum segment size (MTU - 40 bytes)
154
155       -N, --no-delay
156              set TCP/SCTP no delay, disabling Nagle's Algorithm
157
158       -4, --version4
159              only use IPv4
160
161       -6, --version6
162              only use IPv6
163
164       -S, --tos n
165              set the IP 'type of service'
166
167       -L, --flowlabel n
168              set the IPv6 flow label (currently only supported on Linux)
169
170       -X, --xbind name
171              Bind  SCTP  associations  to  a  specific  subset of links using
172              sctp_bindx(3).  The --B flag will be ignored  if  this  flag  is
173              specified.  Normally SCTP will include the protocol addresses of
174              all active links on the local host when setting up  an  associa‐
175              tion.  Specifying at least one --X name will disable this behav‐
176              iour.  This flag must be specified for each link to be  included
177              in  the association, and is supported for both iperf servers and
178              clients (the latter are supported by passing the first --X argu‐
179              ment  to  bind(2)).  Hostnames are accepted as arguments and are
180              resolved using getaddrinfo(3).  If the  --4  or  --6  flags  are
181              specified,  names  which  do not resolve to addresses within the
182              specified protocol family will be ignored.
183
184       --nstreams n
185              Set number of SCTP streams.
186
187       -Z, --zerocopy
188              Use a "zero copy" method of sending data, such  as  sendfile(2),
189              instead of the usual write(2).
190
191       -O, --omit n
192              Omit the first n seconds of the test, to skip past the TCP slow-
193              start period.
194
195       -T, --title str
196              Prefix every output line with this string.
197
198       -C, --congestion algo
199              Set the congestion control algorithm (Linux and  FreeBSD  only).
200              An  older  --linux-congestion  synonym for this flag is accepted
201              but is deprecated.
202
203       --get-server-output
204              Get the output from the server.  The output format is determined
205              by the server (in particular, if the server was invoked with the
206              --json flag, the output will be in  JSON  format,  otherwise  it
207              will  be  in  human-readable format).  If the client is run with
208              --json, the server output is included in a JSON  object;  other‐
209              wise it is appended at the bottom of the human-readable output.
210
211

AUTHORS

213       A list of the contributors to iperf3 can be found within the documenta‐
214       tion located at http://software.es.net/iperf/dev.html#authors.
215
216

SEE ALSO

218       libiperf(3), http://software.es.net/iperf
219
220
221
222ESnet                            January 2017                        IPERF3(1)
Impressum