Intel® Ethernet 600 Series

Linux Performance Tuning Guide
Ethernet Products Group (EPG)

ID Date Version Classification
861164 08/28/2026 Public

​iPerf3

If iperf3 is used, multiple instances of the application are required to take advantage of multi-threading, RSS, and hardware queues. For 10G connections, use up to 4 application sessions/threads when additional parallelism is needed. Each session should specify a unique TCP port value using the -p option.

  • To run unidirectional traffic from client to server:

    Server command example:

    iperf3 -s -p <port>

    Client command example:

    iperf3 -c <serverIP> -p <port>
  • To run bidirectional traffic from client to server and vice versa:

    Server command example:

    iperf3 -s -p <port>

    Client command example:

    iperf3 -c <serverIP> -p <port> -P <IO_Streams> --bidir
  • To start multiple instances or threads of iperf3, use a for-loop to map threads to TCP ports and run iperf3 in the background using & to create multiple parallel processes.

    Server command example, start 4 threads:

    port=""; for i in {0..3}; do port=520$i; bash -c "iperf3 -s -p $port &"; done;

    Client command example, start 4 threads - transmit test:

    port=""; for i in {0..3}; do port=520$i; bash -c "iperf3 -c $serverIP -p $port &"; done;

    Client command example, start 4 threads - receive test:

    port=""; for i in {0..3}; do port=520$i; bash -c "iperf3 -R -c $serverIP -p $port &"; done;

For 10G connections, adjust the for-loop count based on the required level of parallelism. The examples above use 4 instances/threads.