Analyzing Processor Activity

A context switch ** occurs when the kernel switches the processor from one thread to another, for example, when a thread with a higher priority than the running thread becomes ready. Context switching activity is important for several reasons. A program that monopolizes the processor lowers the rate of context switches because it does not allow much processor time for the other processes threads. A high rate of context switching means that the processor is being shared repeatedly, for example, by many threads of equal priority. A high context-switch rate often indicates that there are too many threads competing for the processors on the system.

note-icon

Note

The rate of context switches can also affect performance of multiprocessor computers. For more information about how to monitor and tune context-switch activity on multiprocessor systems, see Measuring Multiprocessor System Activity in the Server Operations Guide .

You can view context switch data in two ways:

  • The System\ Context Switches/sec counter in System Monitor reports systemwide context switches.

  • The Thread(_Total)\ Context Switches/sec counter reports the total number of context switches generated per second by all threads.

Although these counters might vary slightly due to sampling, generally they will be nearly equal.

Figure 29.5 plots System\ Context Switches/sec during a temporary bottleneck.

Cc958317.fned18(en-us,TechNet.10).gif

Figure 29.5 Systemwide Context Switches During a Processor Bottleneck

In Figure 29.5, Processor(_Total)\ % Processor Time jumps to about 60 percent during the sample interval. System\ Processor Queue Length (scaled by a factor of 10) shows that the queue varies from 2 to 6 with a mean near 4. System\ Context Switches (shown scaled by a factor of 10) reveals an average of about 750 switches per second. A rate of context switches from 500 to 2,000 per second might indicate that you have a problem with a network adapter or a device driver or that you are using an inefficient server-based application that spawns too many threads.

The Pviewer utility on the Windows 2000 operating system CD reports context switch data. For information about installing and using the Windows 2000 Support Tools and Support Tools Help, see the file Sreadme.doc in the Support\Tools folder of the Windows 2000 operating system CD.