Eliminating a Processor Bottleneck
If you determine that you do have a processor bottleneck, some of the following steps can shorten the processor queue and reduce the burden on your processor. Monitor processor usage and processor queue length after every change to determine the impact on resource usage and overall system operation.
Upgrade to a faster processor. A faster processor improves response time and throughput for any type of workload.
Make sure to use a processor with the largest processor cache that is practical. The size of the processor cache is important for your system's performance. You can typically choose from 512 KB to 2 MB for the L2 cache. (The primary cache is determined by what type of processor is installed.)
Add another processor. If the process you are running has multiple, active threads that are processor-intensive, then it is a prime candidate for a multiprocessor system. It is important that most of the threads be active while the process is running; otherwise, the additional processing power might be wasted. To be certain the process will benefit from an additional processor, verify that most threads are active (that is, consuming a moderate to high amount of processor time). You can see this by monitoring thread state.
For more information on upgrading to multiple processors, see "Measuring Multiprocessor System Activity" in this book.
Analyze the application and optimize it if necessary by using the performance utilities in the Platform SDK.
Upgrade your network or disk adapters. In general, 32-bit, intelligent adapters are recommended. Intelligent adapters provide better overall system performance because they allow interrupts to be processed on the adapter itself, relieving the processor of this work.
Try to obtain adapters that have optimization features such as interrupt moderation and features for networking, such as card-based TCP/IP checksum support.