Intel® Ethernet 700/800 Series

Windows Performance Tuning Guide

ID Date Version Classification
784543 02/06/2024 1.1 Public
Document Table of Contents

​RSS Base Processor Number

In addition to setting the Maximum Number of RSS Queues for the device port, Intel also recommends that you adjust the RSS Base Processor Number to specify the CPU core at which to start mapping the RSS queues.

The RSS queue-to-processor mappings are allocated sequentially, starting with the RSS Base Processor number, and are incremented by one local CPU core for each RSS queue, up to the Maximum Number of RSS queues/processors.

This setting is recommended for environments that have:

  • ​​Adapters with more than one active port (such as 2x25G, 4x25G, 8x10G).
  • ​​Adapters on a CPU socket or NUMA node that does not start at Core 0.
  • Adapters on a CPU socket or NUMA node that does start at Core 0. Set the Base RSS Processor to start at the next physical, local core, to avoid Core 0, which is used for Windows OS administration tasks.

If you have multiple ports installed in a system, the RSS queues of each adapter port can be adjusted to use non-overlapping sets of processors within the adapter's local Non-Uniform Memory Access (NUMA) Node/Socket.

Change the RSS Base Processor Number for each adapter port, so that the combination of the base processor and the Max Number of RSS Processor settings ensure non-overlapping cores.

For Microsoft Windows systems, do the following:

  1. ​Identify the adapter ports to be adjusted and inspect their RssProcessorArray: Get-NetAdapterRSS -Name <Adapter Name>
  2. ​Identify the processors with NUMA distance 0. These are the cores in the adapter's local NUMA Node/Socket, and they provide the best performance. Note:If Hyper-Threading is enabled in BIOS, the driver does not utilize the hyper-threaded cores for RSS, and this can impact performance for applications using both physical and logical (HT) cores.
  3. ​Adjust the RSS Base Processor Number on each port to use a non-overlapping set of processors within the local set of processors. You can do this manually or using the following PowerShell command: Set-NetAdapterAdvancedProperty -Name <Adapter Name> -DisplayName "RSS Base Processor Number" -DisplayValue <RSS Base Proc Value>
  4. ​Verify the right values have been set: Get-NetAdapterAdvancedproperty -Name <Adapter Name>

Example:

For a 4-port adapter with local processors 0, 2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24, 26, 28, 30:

Set the Maximum Number of RSS Processors to 8 on the 4 interfaces: Set-NetAdapterAdvancedProperty -Name "E810-1" -DisplayName "Maximum Number of RSS Queues" -DisplayValue 8 Set-NetAdapterAdvancedProperty -Name "E810-2" -DisplayName "Maximum Number of RSS Queues" -DisplayValue 8 Set-NetAdapterAdvancedProperty -Name "E810-3" -DisplayName "Maximum Number of RSS Queues" -DisplayValue 8 Set-NetAdapterAdvancedProperty -Name "E810-4" -DisplayName "Maximum Number of RSS Queues" -DisplayValue 8

Set the RSS Base Processor Number to 0, 8, 16 and 24 on the 4 interfaces:

Set-NetAdapterAdvancedProperty -Name "E810-1" -DisplayName "RSS Base Processor Number" -DisplayValue 0 Set-NetAdapterAdvancedProperty -Name "E810-2" -DisplayName "RSS Base Processor Number" -DisplayValue 8 Set-NetAdapterAdvancedProperty -Name "E810-3" -DisplayName "RSS Base Processor Number" -DisplayValue 16 Set-NetAdapterAdvancedProperty -Name "E810-4" -DisplayName "RSS Base Processor Number" -DisplayValue 24

Note:Sometimes better performance is achieved when RSS does not use Core 0, which is used for Windows OS administration tasks. If your adapter is on NUMA Node 0, experiment with the RSS Base Processor Number, starting at the next physical, local core (such as Core 2 in the example above where local cores are 0, 2, 4, 6, 8... ).