Performing a Test with iperf

Getting Started with OVS Offload Software

Platform
Napatech IPU
Content Type
Getting Started
Capture Software Version
OVS Offload Software 1.0

For a simple test, run the iperf server on one port of the OVS bridge and run the client on another port.

Before you begin

Make sure that you have:

About this task

This describes command examples to perform a simple test to measure performance by sending traffic from one port to another on the OVS bridge. The test is done between two physical functions on the host.

If the physical ports on the IPU are connected to a remote system, the network on the remote system can be configured on the same subnet as the network on the IPU and the host. The same test can then be performed between the remote system and the host.

Note: The Linux kernel version can have a dramatic impact on performance due to the associated version of virtio driver. With CentOS 7.9 and an upgraded kernel 5.4.249, over 90 Gbps can be observed with host-to-host or host-to-line connections, and over 40 Gbps for any connections with the IPU.
Note: The following prompts are used to indicate which part of the system to run the provided commands on.
  • soc#: The SoC on the IPU.
  • host#: The server where the IPU is installed.

Procedure

  1. On the host, install the iperf utility if it is not installed.
    host# dnf install -y epel-release
    host# dnf install -y iperf
  2. Set performance mode and disable idle states.
    host# cpupower frequency-set -g performance
    host# cpupower idle-set -D0
  3. To run the iperf server in detached mode, execute the command as follows.
    host# iperf -s -D -B <local_ip_addr>
    The -D option is used to launch the iperf server as a daemon. For example:
    host# ip netns exec pf0 iperf -s -D -B 192.168.1.10
    An output example:
    Running Iperf Server as a daemon
  4. Run the iperf client.
    host# iperf -c <server_ip_addr> -P <num_threads> -t <run_time>
    For example:
    host# ip netns exec pf1 iperf -c 192.168.1.10 -P16 -t30
    where:
    • -P16: For best performance, use -P 16 on the host and -P 8 on the IPU.
    An output example:
    [ 13] local 192.168.1.11 port 46150 connected with 192.168.1.10 port 5001
    [ 15] local 192.168.1.11 port 46152 connected with 192.168.1.10 port 5001
    [ 11] local 192.168.1.11 port 46146 connected with 192.168.1.10 port 5001
    [  7] local 192.168.1.11 port 46170 connected with 192.168.1.10 port 5001
    [  9] local 192.168.1.11 port 46148 connected with 192.168.1.10 port 5001
    ------------------------------------------------------------
    Client connecting to 192.168.1.10, TCP port 5001
    TCP window size: 85.0 KByte (default)
    ------------------------------------------------------------
    [ 16] local 192.168.1.11 port 46334 connected with 192.168.1.10 port 5001
    [  3] local 192.168.1.11 port 46140 connected with 192.168.1.10 port 5001
    [ 14] local 192.168.1.11 port 46156 connected with 192.168.1.10 port 5001
    [  8] local 192.168.1.11 port 46166 connected with 192.168.1.10 port 5001
    [  4] local 192.168.1.11 port 46142 connected with 192.168.1.10 port 5001
    [  2] local 192.168.1.11 port 46162 connected with 192.168.1.10 port 5001
    [ 10] local 192.168.1.11 port 46158 connected with 192.168.1.10 port 5001
    [  5] local 192.168.1.11 port 46144 connected with 192.168.1.10 port 5001
    [  1] local 192.168.1.11 port 46160 connected with 192.168.1.10 port 5001
    [  6] local 192.168.1.11 port 46164 connected with 192.168.1.10 port 5001
    [ 12] local 192.168.1.11 port 46154 connected with 192.168.1.10 port 5001
    [ ID] Interval       Transfer     Bandwidth
    [  7] 0.00-30.01 sec  7.80 GBytes  2.23 Gbits/sec
    [  4] 0.00-30.01 sec  6.92 GBytes  1.98 Gbits/sec
    [  5] 0.00-30.02 sec  8.03 GBytes  2.30 Gbits/sec
    [  6] 0.00-30.02 sec  6.40 GBytes  1.83 Gbits/sec
    [ 15] 0.00-30.02 sec  6.89 GBytes  1.97 Gbits/sec
    [  3] 0.00-30.02 sec  2.44 GBytes   698 Mbits/sec
    [  1] 0.00-30.04 sec  1.59 GBytes   454 Mbits/sec
    [ 14] 0.00-30.05 sec  3.53 GBytes  1.01 Gbits/sec
    [ 12] 0.00-30.05 sec  6.23 GBytes  1.78 Gbits/sec
    [ 16] 0.00-30.05 sec  2.84 GBytes   813 Mbits/sec
    [  8] 0.00-30.04 sec  3.08 GBytes   881 Mbits/sec
    [ 13] 0.00-30.07 sec  6.45 GBytes  1.84 Gbits/sec
    [  2] 0.00-30.07 sec  1.18 GBytes   338 Mbits/sec
    [  9] 0.00-30.05 sec  3.12 GBytes   890 Mbits/sec
    [ 11] 0.00-30.07 sec  7.09 GBytes  2.03 Gbits/sec
    [ 10] 0.00-31.01 sec  11.6 GBytes  3.21 Gbits/sec
    [SUM] 0.00-30.01 sec  85.2 GBytes  24.4 Gbits/sec
    [ CT] final connect times (min/avg/max/stdev) = 0.747/0.964/1.076/0.127 ms (tot/err) = 16/0
  5. Run the following command to stop the iperf server.
    host# pkill iperf