Recognizing a Processor Bottleneck
Processor bottlenecks occur when the processor is so busy that it cannot respond to requests for time. Although a high rate of processor activity might indicate an excessively busy processor, a long, sustained processor queue is a more certain indicator. As you monitor processor and related counters, you can recognize a developing bottleneck by the following conditions:
Processor\% Processor Time often exceeds 80 percent.
System\Processor Queue Length is often greater than 2 on a single-processor system.
Unusually high values appear for the Processor(_Total)\Interrupts/sec or System\Context Switches/sec counters.
The most common causes for processor bottlenecks are insufficient memory or excessive numbers of interrupts from disk or network input/output (I/O). To investigate these possible causes, see the following chapters:
"Evaluating Memory and Cache Usage" in this book
"Examining and Tuning Disk Performance" in this book
"Monitoring Network Performance" in this book
Also, the Processor(_Total)\Interrupts/sec counter value might rise dramatically if you've recently added many new applications or users. During periods of low activity the only source of interrupts might be the processor's timer ticks; these are periodic events that increment a processor hardware timer. These occur approximately every 10 to 15 milliseconds, or about 66 to 100 interrupts per second. Interrupt rates vary depending on system workload, including network packets per second and disk I/O operations per second. Watch for interrupt values that fall out of a normal range (expect these to be in the 1000s of interrupts on Microsoft® Windows® 2000 Server and from 200 to 300 on Microsoft® Windows® 2000 Professional). If Processor\% Interrupt Time exceeds 20 to 30 percent per processor, it might indicate that the system is generating more processor interrupts than it can handle. If this is the case, you might need to upgrade some of your components. For more information, see "Monitoring Network Performance" in this book.
If a processor bottleneck does not exist but you are dissatisfied with system performance, and you have ruled out memory and other hardware factors, consider the following options to improve CPU response time or throughput:
Schedule processor-intensive applications to run when the system load is low. Use Scheduled Tasks in Control Panel or the at command to do this.
Upgrade to a faster processor. Upgrading to a higher-speed processor with a larger L2 cache will expedite processing regardless of your system's workload.
When upgrading to a faster processor, check with the chip vendor to ensure that you use the correct memory speed for the chip. Incompatible memory speed could cause a computer with a faster processor to appear to run more slowly than a computer with a slower processor.
Using multiple processors rather than switching to a faster one might not automatically improve performance in a dramatic manner. For example, a 200-megahertz (MHz) dual-processor computer might not perform equally to a 400-MHz uniprocessor computer with all workloads because of overhead inherent in synchronization. Because scaling can incur some overhead, it is important to be aware of the factors involved and how to manage them. For more information, see "Measuring Multiprocessor System Activity" in this book.
If conditions do not warrant immediate processor replacement, begin monitoring processor activity and system performance as described in the following sections.