1. Introduction to iperf3
       iperf3 is a common network performance testing tool that supports various parameters related to timing, buffers, protocols (TCP, UDP, SCTP with IPv4 and IPv6), and is used to evaluate the performance of network links in terms of transmission bandwidth, latency jitter and packet loss.
2. iperf3 test environment
      The iperf3 test can be carried out through the data transmission between two servers for traffic/bandwidth testing, and it can also realize the traffic/bandwidth testing between different ports of one server, and the following describes the test method under the condition of a single server;
      Test equipment: 1 server; 1 PCS of dual-optical-port NIC; 2 PCS of optical modules and 1 dual-core patch cable;
      Connect according to the following network topology diagram:
 iPerf3 test single server network topology
Figure 1 iPerf3 test single server network topology
3. iperf3 test software
      Download address: https://iperf.fr/iperf-download.php , this installation selects the Centos system 64bits, download the file name for iperf3-3.1.3-1.fc24.x86_64.rpm.
      Enter the command "rpm -ivh filename" in the server terminal to install the iperf tool.
 iPerf3 Software Installation
Figure 2 iPerf3 Software Installation
4. iperf3 test method
      a. On the Dell R720 2U server, insert the two modules into the INTEL XXV710 network ports p4p1 and p4p2 respectively, use patch cables to connect them, and then open the server terminal after the NIC indicator is always on, i.e., after the module is LINKed.
      b. in a single server using iperf test, we need to turn on the kernel's network forwarding function, and the use of netns to isolate the two ports on the dual-network NIC, that is, the two ports p4p1 and p4p2, otherwise it may be the data transfer through the internal protocol stack, rather than the real test results of the physical connection.
      c. Make configuration changes to the kernel by typing: vi /etc/sysctl.conf in the server terminal;
Make configuration changes to the kernel
Figure 3 Make configuration changes to the kernel
 
      d. Enter the following command: Controls IP packet forwarding net.ipv4.ip_forward = 1 to enable network forwarding;
Enabling network forwarding
Figure 4 Enabling network forwarding
 
      e. Enter sysctl -p to bring the above configuration function into effect;
Execute the command to take effect
Figure 5 Execute the command to take effect
 
      f. add two namespace were ns1 and ns2, add to see whether to add successfully;
Add namespace
Figure 6 Add namespace
 
      g. Add the network port p4p1 to ns1 and check;
 Add p4p1 to ns1
Figure 7 Add p4p1 to ns1
 
      h. Add the network port p4p2 to ns2 and view it;
Add p4p2 to ns2
Figure 8 Add p4p2 to ns2
 
      i. to ns1, ns2 2 interfaces respectively configure IP and view;
Configure IP
Figure 9 Configure IP
 
      k. run iperf3 server on ns1;
Run iperf3 server on ns1
Figure 10 Run iperf3 server on ns1
 
      m. open a new terminal and run the iperf3 client on ns2;
Bandwidth test results
Figure 11 Bandwidth test results
 
      When the optical module is applied on the server, it works in the physical layer and carries out the photoelectric conversion and transmission of transparent "0" and "1" signals, which generally does not affect the fluctuation of the test bandwidth during the iperf3 test.
      When using optical modules for iPerf3 traffic testing, due to CPU hardware limitations, it is generally not possible to achieve 100% of the target bandwidth, as shown in Figure 11 above (Intel Original Optical Module E10GSFPSR, supports bandwidth of 10Gbits/sec, the actual test in the current server hardware can only reach about 9.37Gbits/sec).
      Moduletek Limited is at your service!
      If you have any questions about the above content, you can contact us by Email : web@moduletek.com