Intel® Ethernet 600 Series
Linux Performance Tuning Guide
Ethernet Products Group (EPG)
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
- 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.