Intel® Ethernet 700/800 Series
Windows Performance Tuning Guide
iperf3
Using iperf3 requires multiple instances of an application to take advantage of Receive Side Scaling (RSS), multi-threads, and hardware queues.
Using iperf3 differs from using iperf2 as follows:
- iperf3 with the -P option set uses multiple streams of traffic inside a single I/O thread.
- iperf3 supports single-threaded benchmarking with multiple streams from one application thread.
- iperf2 with the -P option set spawns a separate thread for each instance of -P.
- iperf2 supports true multi-threaded benchmarking.
Intel recommends running with 2 to 4 application sessions for 25G connections and around 6 to 8 sessions for 100G connections. Each session should specify unique TCP port values using the -p option.
To run uni-directional traffic from client to server:
To start multiple instances (threads) of iperf3:
- Use a for-loop to map threads to TCP ports.
- Run iperf3 in the background using this cmdlet:
Start-Process - Start Server with 4 instances/threads:
for ($i = 0; $i -le 3; $i++) { Start-Process powershell.exe -ArgumentList "-Command", ".\iperf3.exe -s -p ((5200+$i))" } - Start Client with 4 instances/threads:
for ($i = 0; $i -le 3; $i++) { Start-Process powershell.exe -ArgumentList "-Command", ".\iperf3.exe -s -p ((5200+$i))" }
To turn off the creation of new windows and send all output to the active window:
- Add the
-NoNewWindow command to the end of the Start-Process commands as follows:Start-Process powershell.exe -ArgumentList "-Command", ".\iperf3.exe -s -p ((5200+$i))" -NoNewWindow Start-Process powershell.exe -ArgumentList "-Command", ".\iperf3.exe -c <serverIP> -p ((5200+$i))" -NoNewWindow