The basic commands are the same for iperf and iperf3: iperf3 adds a number of additional features. For example, the -i mode now reports TCP retransmit ...
The basic commands are the same for iperf and iperf3:
Server: | |
iperf/iperf3 -s | Start server on the default port |
iperf -s -w 32M -D / iperf3 -s -D | Start server with larger TCP window, and in daemon mode |
iperf -i1 -u -s -p 5003 / iperf3 -s -p 5003 | Start UDP server on port 5003, and give 1 sec interval reports |
Client | |
iperf/iperf3 -c remotehost -i 1 -t 30 | Run a 30 second tests, giving results every 1 second |
iperff/iperf3 -c remotehost -i 1 -t 20 -r | Run a test from remotehost to localhost |
iperf/iperf3 -c remotehost -i 1 -t 20 -w 32M -P 4 | Run a test with 4 parallel streams, and with a 32M TCP buffer |
iperf/iperf3 -c remotehost -u -i 1 -b 200M | Run a 200 Mbps UDP test |
iperf3 adds a number of additional features. For example, the -i mode now reports TCP retransmit info (and is on by default), and the verbose mode now gives a lot of useful information on CPU usage, etc. Other new options include:
Client: | |
iperf3 -c remotehost -i.5 -0 2 | Run the test for 2 seconds before collecting results, to allow for TCP slowstart to finish. (Omit mode) |
iperf3 -Z -c remotehost | Use the sendfile() system call for "Zero Copy" mode. This uses much less CPU. |
iperf3 -c 192.168.12.12 -T s1 & iperf3 -c 192.168.12.13 -T s2 | Run tests to multiple interfaces at once, and label the lines to indicate which test is which |
iperf3 -c remotehost -J | Output the results in JSON format for easy parsing. |
iperf3 -A 4,4 -c remotehost | Set the CPU affinity for the sender,receiver (cores are numbered from 0). This has the same affect as doing 'numactl -C 4 iperf3'. |
iperf3 -c 10.20.1.20 -A2,2 -T "1" & ; iperf3 -c 10.20.1.20 -p 5400 -A3,3 -T "2" & |
Run 2 streams on 2 different cores, and label each using the "-T" flag. |
iperf3 thread model
In order to keep the code as simple and maintainable as possible, iperf3 is single threaded. This means that that you may be CPU-bound on some hosts, or on 40G/100G NICs. To run parallel stream iperf3 on mutiple cores, use the method shown in the table above.
實踐:
[root@CentOS7 iperf-3.1.2]# iperf3 -s
-----------------------------------------------------------
Server listening on 5201
-----------------------------------------------------------
Accepted connection from 192.168.56.106, port 58465
[ 5] local 192.168.56.103 port 5201 connected to 192.168.56.106 port 58466
[ ID] Interval Transfer Bandwidth
[ 5] 0.00-1.00 sec 49.9 MBytes 418 Mbits/sec
[ 5] 1.00-2.00 sec 175 MBytes 1.47 Gbits/sec
[ 5] 2.00-3.00 sec 148 MBytes 1.25 Gbits/sec
[ 5] 3.00-4.00 sec 164 MBytes 1.38 Gbits/sec
[ 5] 4.00-5.00 sec 234 MBytes 1.96 Gbits/sec
[ 5] 5.00-6.00 sec 227 MBytes 1.91 Gbits/sec
[ 5] 6.00-7.00 sec 222 MBytes 1.86 Gbits/sec
[ 5] 7.00-8.00 sec 169 MBytes 1.42 Gbits/sec
[ 5] 8.00-9.00 sec 143 MBytes 1.20 Gbits/sec
[ 5] 9.00-10.00 sec 226 MBytes 1.90 Gbits/sec
[ 5] 10.00-11.00 sec 189 MBytes 1.58 Gbits/sec
[ 5] 11.00-12.00 sec 101 MBytes 850 Mbits/sec
[ 5] 12.00-13.00 sec 188 MBytes 1.58 Gbits/sec
[ 5] 13.00-14.00 sec 207 MBytes 1.74 Gbits/sec
[ 5] 14.00-15.00 sec 215 MBytes 1.81 Gbits/sec
[ 5] 15.00-16.00 sec 218 MBytes 1.83 Gbits/sec
[ 5] 16.00-17.00 sec 217 MBytes 1.82 Gbits/sec
[ 5] 17.00-18.00 sec 217 MBytes 1.82 Gbits/sec
[ 5] 18.00-19.00 sec 169 MBytes 1.42 Gbits/sec
[ 5] 19.00-20.00 sec 230 MBytes 1.93 Gbits/sec
[ 5] 20.00-21.00 sec 228 MBytes 1.91 Gbits/sec
[ 5] 21.00-22.00 sec 220 MBytes 1.85 Gbits/sec
[ 5] 22.00-23.00 sec 227 MBytes 1.91 Gbits/sec
[ 5] 23.00-24.00 sec 231 MBytes 1.94 Gbits/sec
[ 5] 24.00-25.00 sec 232 MBytes 1.95 Gbits/sec
[ 5] 25.00-26.00 sec 146 MBytes 1.23 Gbits/sec
[ 5] 26.00-27.00 sec 200 MBytes 1.67 Gbits/sec
[ 5] 27.00-28.00 sec 180 MBytes 1.51 Gbits/sec
[ 5] 28.00-29.00 sec 176 MBytes 1.47 Gbits/sec
[ 5] 29.00-30.00 sec 170 MBytes 1.43 Gbits/sec
[ 5] 30.00-31.00 sec 217 MBytes 1.82 Gbits/sec
[ 5] 31.00-32.00 sec 215 MBytes 1.80 Gbits/sec
[ 5] 32.00-32.54 sec 116 MBytes 1.79 Gbits/sec
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval Transfer Bandwidth
[ 5] 0.00-32.54 sec 0.00 Bytes 0.00 bits/sec sender
[ 5] 0.00-32.54 sec 6.12 GBytes 1.62 Gbits/sec receiver
[root@CentOS6 iperf-3.1.2]# iperf3 -c 192.168.56.103 -i 1 -t 30 Connecting to host 192.168.56.103, port 5201 [ 4] local 192.168.56.106 port 58466 connected to 192.168.56.103 port 5201 [ ID] Interval Transfer Bandwidth Retr Cwnd [ 4] 0.00-1.00 sec 59.3 MBytes 497 Mbits/sec 137 181 KBytes [ 4] 1.00-2.00 sec 214 MBytes 1.80 Gbits/sec 46 211 KBytes [ 4] 2.00-3.00 sec 129 MBytes 1.08 Gbits/sec 1 74.9 KBytes [ 4] 3.00-4.00 sec 222 MBytes 1.86 Gbits/sec 46 209 KBytes [ 4] 4.00-5.00 sec 253 MBytes 2.12 Gbits/sec 0 235 KBytes [ 4] 5.00-6.00 sec 240 MBytes 2.01 Gbits/sec 45 187 KBytes [ 4] 6.00-7.00 sec 249 MBytes 2.09 Gbits/sec 0 198 KBytes [ 4] 7.00-8.00 sec 135 MBytes 1.14 Gbits/sec 1 80.6 KBytes [ 4] 8.00-9.00 sec 210 MBytes 1.77 Gbits/sec 46 209 KBytes [ 4] 9.00-10.00 sec 236 MBytes 1.98 Gbits/sec 0 233 KBytes [ 4] 10.00-11.00 sec 94.7 MBytes 795 Mbits/sec 92 39.6 KBytes [ 4] 11.00-12.00 sec 203 MBytes 1.71 Gbits/sec 0 94.7 KBytes [ 4] 12.00-13.00 sec 225 MBytes 1.89 Gbits/sec 0 122 KBytes [ 4] 13.00-14.00 sec 235 MBytes 1.97 Gbits/sec 0 144 KBytes [ 4] 14.00-15.00 sec 236 MBytes 1.98 Gbits/sec 0 157 KBytes [ 4] 15.00-16.00 sec 234 MBytes 1.96 Gbits/sec 0 164 KBytes [ 4] 16.00-17.00 sec 185 MBytes 1.55 Gbits/sec 46 182 KBytes [ 4] 17.00-18.00 sec 243 MBytes 2.04 Gbits/sec 0 219 KBytes [ 4] 18.00-19.00 sec 252 MBytes 2.11 Gbits/sec 45 171 KBytes [ 4] 19.00-20.00 sec 233 MBytes 1.96 Gbits/sec 0 191 KBytes [ 4] 20.00-21.00 sec 251 MBytes 2.10 Gbits/sec 0 201 KBytes [ 4] 21.00-22.00 sec 247 MBytes 2.07 Gbits/sec 0 206 KBytes [ 4] 22.00-23.00 sec 252 MBytes 2.11 Gbits/sec 0 214 KBytes [ 4] 23.00-24.00 sec 164 MBytes 1.38 Gbits/sec 1 66.5 KBytes [ 4] 24.00-25.00 sec 214 MBytes 1.79 Gbits/sec 0 122 KBytes [ 4] 25.00-26.00 sec 202 MBytes 1.69 Gbits/sec 0 164 KBytes [ 4] 26.00-27.00 sec 197 MBytes 1.66 Gbits/sec 0 192 KBytes [ 4] 27.00-28.00 sec 187 MBytes 1.57 Gbits/sec 1 148 KBytes [ 4] 28.00-29.00 sec 235 MBytes 1.97 Gbits/sec 0 160 KBytes [ 4] 29.00-30.00 sec 230 MBytes 1.93 Gbits/sec 0 170 KBytes - - - - - - - - - - - - - - - - - - - - - - - - - [ ID] Interval Transfer Bandwidth Retr [ 4] 0.00-30.00 sec 6.12 GBytes 1.75 Gbits/sec 507 sender [ 4] 0.00-30.00 sec 6.12 GBytes 1.75 Gbits/sec receiver iperf Done. [root@CentOS6 iperf-3.1.2]# iperf3 -c 192.168.56.103 -u -i 1 -b 200M Connecting to host 192.168.56.103, port 5201 [ 4] local 192.168.56.106 port 48953 connected to 192.168.56.103 port 5201 [ ID] Interval Transfer Bandwidth Total Datagrams [ 4] 0.00-1.00 sec 22.6 MBytes 189 Mbits/sec 2891 [ 4] 1.00-2.00 sec 24.0 MBytes 201 Mbits/sec 3068 [ 4] 2.00-3.00 sec 23.6 MBytes 198 Mbits/sec 3025 [ 4] 3.00-4.00 sec 23.8 MBytes 200 Mbits/sec 3043 [ 4] 4.00-5.00 sec 23.9 MBytes 200 Mbits/sec 3055 [ 4] 5.00-6.00 sec 23.9 MBytes 200 Mbits/sec 3059 [ 4] 6.00-7.00 sec 23.7 MBytes 199 Mbits/sec 3038 [ 4] 7.00-8.00 sec 23.9 MBytes 200 Mbits/sec 3055 [ 4] 8.00-9.00 sec 23.9 MBytes 200 Mbits/sec 3065 [ 4] 9.00-10.00 sec 23.9 MBytes 201 Mbits/sec 3053 - - - - - - - - - - - - - - - - - - - - - - - - - [ ID] Interval Transfer Bandwidth Jitter Lost/Total Datagrams [ 4] 0.00-10.00 sec 237 MBytes 199 Mbits/sec 0.027 ms 500/30352 (1.6%) [ 4] Sent 30352 datagrams iperf Done.
FAQ:
1.Q:[root@CentOS6 iperf-3.1.2]# iperf3 -c 192.168.56.103 -f M -i 2 -w 300K -n 100M -t 30 -d iperf3: parameter error - only one test end condition (-t, -n, -k) may be specified A:去掉-n 2.-d不再是雙向,是debug,目前不支持雙向,網上一些文章是錯的。Deprecated flags (currently no plans to support):
-d, --dualtest Do a bidirectional test simultaneously -r, --tradeoff Do a bidirectional test individually -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