Optimizing and Tuning Multiprocessor Installations

One way to get maximum performance from a system is to partition your workload so that a specific processor is servicing all threads, interrupts, and DPCs associated with that workload. This avoids the inefficiencies introduced when these items are distributed among processors, resulting in frequent context switching and loss of cache locality. Full partitioning , that is, partitioning threads and interrupts by processor, is extremely effective in providing linear scaling on SMP systems. Depending on your workload, you can use a combination of the partitioning strategies or implement one strategy at a time.

Strategies for managing threads, interrupts, and DPCs for better overall SMP performance are described in the following sections:

  • Thread Partitioning.

  • DPC (Software Interrupt) Partitioning.

  • Hardware Interrupt Partitioning.

  • Bypassing I/O Counts.



When using server applications, such as Microsoft SQL Server, Microsoft® Exchange Server, or Microsoft® Internet Information Services, consult the documentation provided with those servers, which might have built-in optimizations.