When you release an ip connectivity the most last important step is TEST, STRESS and TRY-OUT the new line based on customer requirements. There are many tools and blackboxes on the market especially if you need to test 1,10, 40 or 100 Gbps links. We use iPerf3 a great tool for active measurements with a various set of parameters like:
- TCP bandwidth
Measure bandwidth, report MSS/MTU size and observed read sizes, Support for TCP window size via socket buffers, multi-thread. - UDP bandwidth
Measure packet loss, delay jitter, multicast capable. - Packet loss
- Jitter
- MTU monitor
In addition to the CLI version there is a graphic GUI for iPerf3. It is written in Java and allows to select all the measurement parameters provided by the console. It also produces a graphic output useful to be attached to the test reports.
Let’s do some examples with a Linux CLI:
# Start server side:
iperf3 -s
# Start client DOWNLOAD test:
iperf3 -c [server.ip] -t 100
# Start client UPLOAD test:
iperf3 -c [server.ip] -t 100 -R
# Start client UDP test:
iperf3 -c [server.ip] -u
# Start client JUMBO-FRAMES test:
iperf3 -c [server.ip] -t 100 -M 9000
Output:
iperf3 -c iperf3.glitchlist.com
Connecting to host iperf3.glitchlist.com, port 5201
[ 5] local 10.10.10.1 port 58870 connected to iperf3.glitchlist.com port 5201
[ ID] Interval Transfer Bitrate Retr Cwnd
[ 5] 0.00-1.00 sec 64.5 MBytes 541 Mbits/sec 20 200 KBytes
[ 5] 1.00-2.00 sec 76.2 MBytes 639 Mbits/sec 10 290 KBytes
[ 5] 2.00-3.00 sec 73.3 MBytes 615 Mbits/sec 31 203 KBytes
[ 5] 3.00-4.00 sec 75.4 MBytes 633 Mbits/sec 7 270 KBytes
[ 5] 4.00-5.00 sec 70.8 MBytes 594 Mbits/sec 6 341 KBytes
[ 5] 5.00-6.00 sec 82.0 MBytes 688 Mbits/sec 0 461 KBytes
[ 5] 6.00-7.00 sec 81.7 MBytes 685 Mbits/sec 37 442 KBytes
[ 5] 7.00-8.00 sec 82.2 MBytes 689 Mbits/sec 0 518 KBytes
[ 5] 8.00-9.00 sec 78.4 MBytes 658 Mbits/sec 36 397 KBytes
[ 5] 9.00-10.00 sec 80.0 MBytes 671 Mbits/sec 4 286 KBytes
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval Transfer Bitrate Retr
[ 5] 0.00-10.00 sec 764 MBytes 641 Mbits/sec 151 sender
[ 5] 0.00-10.00 sec 763 MBytes 640 Mbits/sec receiver
iperf Done.
iperf3 -c iperf3.glitchlist.com -R
Connecting to host iperf3.glitchlist.com, port 5201
Reverse mode, remote host iperf3.glitchlist.com is sending
[ 5] local 10.10.10.1 port 59270 connected to iperf3.glitchlist.com port 5201
[ ID] Interval Transfer Bitrate
[ 5] 0.00-1.00 sec 71.3 MBytes 598 Mbits/sec
[ 5] 1.00-2.00 sec 56.4 MBytes 473 Mbits/sec
[ 5] 2.00-3.00 sec 49.9 MBytes 418 Mbits/sec
[ 5] 3.00-4.00 sec 54.7 MBytes 459 Mbits/sec
[ 5] 4.00-5.00 sec 49.5 MBytes 415 Mbits/sec
[ 5] 5.00-6.00 sec 58.6 MBytes 492 Mbits/sec
[ 5] 6.00-7.00 sec 56.1 MBytes 470 Mbits/sec
[ 5] 7.00-8.00 sec 64.8 MBytes 544 Mbits/sec
[ 5] 8.00-9.00 sec 81.3 MBytes 682 Mbits/sec
[ 5] 9.00-10.00 sec 78.8 MBytes 661 Mbits/sec
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval Transfer Bitrate Retr
[ 5] 0.00-10.00 sec 623 MBytes 523 Mbits/sec 969 sender
[ 5] 0.00-10.00 sec 621 MBytes 521 Mbits/sec receiver
iperf Done.
Note the -R parameter which is very useful during testing and troubleshooting phases. It allows you to measure the remote download (upstream) without acting directly on the server where the iPerf3 daemon is running but only adding the -R client-side option iperf3 -c iperf3.glitchlist.com -R
Of course you can also reach 1G or 10G public iPerf servers at this link.