[LINUX] Network performance measurement with iperf

Prior explanation

iperf is a tool that passes traffic between server and client and checks how much traffic has flowed. Set up a server and client for iperf, and measure the throughput while communicating by specifying the protocol between them. Measurement between different OSs is also possible (this is convenient).

iperf official documentation

environment

This time, a sandwiching hub was placed between the two PCs, and the throughput between them was measured.

iperf version: 3.1.3 iperf server: Ubuntu server 18.04 LTS iperf client: Windows10 switching hub: netgear GS105E

Purpose

Measure the throughput between two PCs when the switching hub is sandwiched.

Preparation

Create the following network.

iperf_test.png

The actual photo is as follows.

There are still versions of iperf, and you can't measure throughput with different versions.

apt install iperf #version 2 series
apt install iperf3 #version 3 series

Actual measurement

terminal


$ iperf3 -s

cmd/pwd


$ iperf3 -c 192.168.0.2

Detailed information appears on both the server side and the client side. For example, the log on the client side looks like this.

cmd/pwd



Connecting to host 192.168.0.2, port 5201
[  5] local 192.168.0.10 port 54178 connected to 192.168.0.2 port 5201
iperf3: getsockopt - Protocol not available
[ ID] Interval           Transfer     Bandwidth       Retr  Cwnd
[  5]   0.00-1.00   sec   108 MBytes   901 Mbits/sec  1296506930   0.00 Bytes       
iperf3: getsockopt - Protocol not available
[  5]   1.00-2.00   sec   107 MBytes   898 Mbits/sec    0   0.00 Bytes       
iperf3: getsockopt - Protocol not available
[  5]   2.00-3.00   sec   107 MBytes   899 Mbits/sec    0   0.00 Bytes       
iperf3: getsockopt - Protocol not available
[  5]   3.00-4.00   sec   106 MBytes   893 Mbits/sec    0   0.00 Bytes       
iperf3: getsockopt - Protocol not available
[  5]   4.00-5.00   sec   108 MBytes   911 Mbits/sec    0   0.00 Bytes       
iperf3: getsockopt - Protocol not available
[  5]   5.00-6.00   sec   107 MBytes   898 Mbits/sec    0   0.00 Bytes       
iperf3: getsockopt - Protocol not available
[  5]   6.00-7.00   sec   107 MBytes   896 Mbits/sec    0   0.00 Bytes       
iperf3: getsockopt - Protocol not available
[  5]   7.00-8.00   sec   108 MBytes   902 Mbits/sec    0   0.00 Bytes       
iperf3: getsockopt - Protocol not available
[  5]   8.00-9.00   sec   107 MBytes   895 Mbits/sec    0   0.00 Bytes       
iperf3: getsockopt - Protocol not available
[  5]   9.00-10.00  sec   108 MBytes   902 Mbits/sec  2998460366   0.00 Bytes       
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval           Transfer     Bandwidth       Retr
[  5]   0.00-10.00  sec  1.05 GBytes   900 Mbits/sec    0             sender
[  5]   0.00-10.00  sec  1.05 GBytes   900 Mbits/sec                  receiver

iperf Done.

(Supplement) What I really wanted to know this time

The goal was to actually measure and see if the netgear switch would reduce throughput during local port mirroring. As you can see by investigating, I was wondering if that would really become a bottleneck in operation, and I was really worried about the results of the field experiment.

This time, even if I set the local port mirroring on the switch and actually sent the packet after that, the throughput did not decrease! Was good.

Recommended Posts

Network performance measurement with iperf
Redis performance measurement
NVMe Performance Measurement Summary
Run iperf with python
Neural network with Python (scikit-learn)
3. Normal distribution with neural network!
Neural network starting with Chainer
Execution time measurement with Python With
4. Circle parameters with neural network!
Network programming with Python Scapy
Neural network with OpenCV 3 and Python 3
Measuring network one-way delay with python
Simple classification model with neural network
Monitor Python application performance with Dynatrace ♪
Write a Residual Network with TFLearn
[TensorFlow] [Keras] Neural network construction with Keras
Detailed explanation Performance improvement with NewRelic-Part 3
Operate Linux Network Namespace with Go
Web application performance measurement tool Funkload ...