Monitoring Activity on Multiprocessor Systems

In addition to counters used to determine a baseline, as described in "Overview of Performance Monitoring" in this book, and processor-specific counters, as described in "Analyzing Processor Activity" in this book, the counters listed in Table 10.1 are useful for obtaining detailed information when evaluating the performance of multiprocessor systems.

Table 10.1 Multiprocessor System Counters and Descriptions



Process( process_name )\Thread Counter

Shows the last observed value, not an average. You need to monitor it at various times to get an accurate picture of activity.

Processor\% DPC Time

Determines how much time the processor is spending processing DPCs. DPCs originate when the processor performs tasks requiring immediate attention, and then defers the remainder of the task to be handled at lower priority. DPCs represent further processing of client requests.

Processor\% Interrupt Time

Determines how much time the processor is spending processing interrupts. Interrupts are generated when a client requests a connection or sends data.
If processor time is more than 90 percent and this value is greater than 15 percent, the processor is probably overburdened with interrupts.

Processor\DPCs Queued/sec

Monitors the rate at which DPCs are queued on a particular processor. (This counter does not measure the number of DPCs in the queue.)


Reflects the rate at which the processor is handling interrupts.

System\Context Switches/sec

Indicates that the kernel has switched the thread it is running on a processor. A context switch occurs each time a new thread runs, and each time one thread takes over from another. A large number of threads is likely to increase the number of context switches. Context switches allow multiple threads to share time slices on the processors, but they also interrupt the processor and might reduce overall system performance, especially on multiprocessor computers. You should also observe the patterns of context switches over time.

System\System calls/sec

Monitors the frequency of calls to Windows 2000 system service routines. These are the services exported to applications from the kernel.

Thread( process_name \Thread #)\% Processor Time

Monitors processor time usage by threads on the system.

Thread\Context Switches/sec

Monitors context switches generated by individual threads.

The following sections describe how to monitor and analyze the values reported in specific areas:

  • Processor Time Data

  • Processor Queue Lengths

  • Interrupt and DPC Data

  • Thread and Context Switching Data