Charting Processor Usage Per Thread

Observing processor time by threads in a process provides additional information about the activity of the processor during a bottleneck. System Monitor provides the Thread\%Processor Time counter for monitoring processor usage for each thread in a running process. If you have determined that a process is single-threaded, you do not need to track the processor time for the process's thread because this will be nearly identical (except for small variations due to sampling) to the processor time you recorded when tracking the process itself.

Figure 7.12 shows Thread\% Processor Time for all initialized threads during a bottleneck. Each bar of the histogram represents the processor time of a single thread.

Cc938601.FNED14(en-us,TechNet.10).gif

Figure 7.12 View of Threads and Processor Usage

Figure 7.12 shows that the three threads of the CPU Stress process are dominating the pattern of processor use, although a few other threads are getting some processor time.

If your thread activity appears similar to the preceding figure and a long queue is developing, some applications on your system are probably not getting enough processor time to run as efficiently as you would like. To investigate the threads of the process and how they use the processor, monitor context switching and user-mode vs. kernel-mode CPU usage, as described in the following sections.