ubuntuudpiperf3

Iperf3 get server output in real time for UDP measurement


I'm testing my network using iperf3 on a Ubuntu VM.

I want to measure the data package loss for udp.

I've found the argument --get-server-output so that I can get what the server receives exactly.

iperf3 -u -c hostname -p 30070 --get-server-output 

It works fine since I have simulated a 5% loss with the following command

tc qdisc add dev eth1 root netem loss 10%

And I get the following response

onnecting to host hostname, port 30070
[  5] local 10.0.2.15 port 33243 connected to xxx.xxx.xxx.xxx port 30070
[ ID] Interval           Transfer     Bitrate         Total Datagrams
[  5]   0.00-1.00   sec   128 KBytes  1.05 Mbits/sec  90  
[  5]   1.00-2.00   sec   128 KBytes  1.05 Mbits/sec  90  
[  5]   2.00-3.00   sec   128 KBytes  1.05 Mbits/sec  90  
[  5]   3.00-4.00   sec   128 KBytes  1.05 Mbits/sec  90  
[  5]   4.00-5.00   sec   127 KBytes  1.04 Mbits/sec  89  
[  5]   5.00-6.00   sec   128 KBytes  1.05 Mbits/sec  90  
[  5]   6.00-7.00   sec   128 KBytes  1.05 Mbits/sec  90  
[  5]   7.00-8.05   sec   123 KBytes   958 Kbits/sec  86  
[  5]   8.05-9.00   sec   133 KBytes  1.14 Mbits/sec  93  
[  5]   9.00-10.01  sec   127 KBytes  1.03 Mbits/sec  89  
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval           Transfer     Bitrate         Jitter    Lost/Total Datagrams
[  5]   0.00-10.01  sec  1.25 MBytes  1.05 Mbits/sec  0.000 ms  0/897 (0%)  sender
[  5]   0.00-10.20  sec  1.18 MBytes   969 Kbits/sec  1.005 ms  50/896 (5.6%)  receiver

Server output:
Accepted connection from xxx.xxx.xxx.xxx, port 62842
[  5] local 10.0.0.4 port 30070 connected to 146.124.110.133 port 54160
[ ID] Interval           Transfer     Bitrate         Jitter    Lost/Total Datagrams
[  5]   0.00-1.00   sec  95.5 KBytes   782 Kbits/sec  8.218 ms  4/71 (5.6%)  
[  5]   1.00-2.00   sec   121 KBytes   993 Kbits/sec  2.405 ms  6/91 (6.6%)  
[  5]   2.00-3.00   sec   121 KBytes   993 Kbits/sec  0.834 ms  5/90 (5.6%)  
[  5]   3.00-4.00   sec   121 KBytes   993 Kbits/sec  1.304 ms  5/90 (5.6%)  
[  5]   4.00-5.00   sec   120 KBytes   981 Kbits/sec  0.690 ms  5/89 (5.6%)  
[  5]   5.00-6.00   sec   117 KBytes   958 Kbits/sec  1.419 ms  7/89 (7.9%)  
[  5]   6.00-7.00   sec   123 KBytes  1.00 Mbits/sec  1.212 ms  4/90 (4.4%)  
[  5]   7.00-8.00   sec   117 KBytes   958 Kbits/sec  1.590 ms  7/89 (7.9%)  
[  5]   8.00-9.00   sec   124 KBytes  1.02 Mbits/sec  1.285 ms  5/92 (5.4%)  
[  5]   9.00-10.00  sec   124 KBytes  1.02 Mbits/sec  0.994 ms  2/89 (2.2%)  
[  5]  10.00-10.20  sec  22.8 KBytes   928 Kbits/sec  1.005 ms  0/16 (0%)  
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval           Transfer     Bitrate         Jitter    Lost/Total Datagrams
[  5]   0.00-10.20  sec  1.18 MBytes   969 Kbits/sec  1.005 ms  50/896 (5.6%)  receiver

I was wondering if there is a way to get the server output in real-time and not after the measurement has finished.
I have to use the iperf3 binary and not the libperf library.

Thank you for your time


Solution

  • Currently iperf3 does not have an option to get the server's output in real-time for each throughput report interval.