1IPERF3(1) User Manuals IPERF3(1)
2
3
4
6 iperf3 - perform network throughput tests
7
9 iperf3 -s [ options ]
10 iperf3 -c server [ options ]
11
12
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
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
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
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
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
218 libiperf(3), http://software.es.net/iperf
219
220
221
222ESnet January 2017 IPERF3(1)