Intel® Ethernet 700/800 Series

Windows Performance Tuning Guide

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

​CPU Affinity

When passing traffic on multiple network ports using an I/O application that runs on most or all of the cores in your system, consider setting the CPU Affinity for that application to fewer cores. This should reduce CPU utilization and, in some cases, increase throughput for the device. The cores selected for CPU Affinity must be local to the Processor Node/Group of the affected network device. You may need to increase the number of cores assigned to the application to maximize throughput.

Note:​Refer to your operating system documentation for more details on setting the CPU Affinity.

To set CPU Affinity:

  1. ​Use this PowerShell command to list the cores that are local to a device: Get NetAdapterRSS
  2. List the RSS details for the device: Get-NetAdapterRSS -Name <Adapter Name>
  3. Set the CPU Affinity using PowerShell: $process = Get-Process -Name <Application Name> $process.ProcessorAffinity = 0x00005555

The CPU Affinity mask (0x00005555) is a hexadecimal bitmask that sets the CPU cores for the application, <Application Name>. This example sets the CPU Affinity to use the first 8 cores on the server with the local CPU Cores 0, 2, 4, 6, 8, 10, 12, 14 (0x00005555).

Note:Some workloads perform better when CPU Core 0 is not used for application traffic, due to contention with Windows administration tasks running on CPU Core 0. If performance issues are observed, try adjusting application traffic to use CPU cores above (excluding) CPU Core 0.