Intel® Ethernet 800 Series
Linux Performance Tuning Guide
iperf3
If iperf3 used, multiple instances of the application are required to take advantage of the multi-threads, RSS, and hardware queues. Intel recommends running with the 2-4 application sessions for 25G connections and around 6-8 sessions for 100G connections. Each session should specify a unique TCP port values using the -p option.
- To run uni-directional traffic from client to server:
Server command example:
iperf3 -s -p <port> & Client command example:
iperf3 -c <serverIP> -p <port> & - To run bi-directional 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> --full-duplex or
iperf3 -c <serverIP> -p <port> -P <IO_Streams> -d - To start multiple instances (threads) of iperf3, Intel recommends using a for-loop to map threads to TCP ports and running iperf3 in the background using
& to create multiple processes in parallel: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 100G connections, increase the for-loop to create 6 or 8 instances/threads.