You should periodically monitor the computer running Microsoft® SQL Server™ to determine if CPU utilization rates are within normal ranges. A continually high CPU rate may indicate the need for a CPU upgrade or the addition of multiple processors. Additionally, a continually high CPU utilization may indicate a poorly tuned or designed application. Optimizing the application can lower CPU utilization. For more information, see Application Design.
A good way to determine this is to use the Processor:% Processor Time counter. This counter in Windows NT Performance Monitor monitors the amount of time the CPU spends processing a nonidle thread. A consistent state of 80 to 90 percent may indicate the need for a CPU upgrade or the addition of more processors. For multiprocessor systems, a separate instance of this counter should be monitored for each processor. This value represents the sum of processor time on a specific processor. To determine the average for all processors, use the System: %Total Processor Time counter instead.
Optionally, you can also monitor:
This counter corresponds to the percentage of time the processor is spending executing Microsoft Windows NT® kernel commands such as processing SQL Server I/O requests. If this counter is consistently high in conjunction with the Physical Disk counters, then SQL Server could be I/O-bound. Consider a faster or more efficient disk subsystem.
Note Different disk controllers and drivers use different amounts of kernel processing time. Efficient controllers and drivers use less privileged time, leaving more processing time available for user applications, increasing overall throughput.
This counter corresponds to the percentage of time the processor is spending executing user processes such as SQL Server.
This counter corresponds to the number of threads waiting for processor time. A processor bottleneck develops when threads of a process require more processor cycles than are available. If more than a few program processes are contending for most of the processor’s time, you might need to install a faster processor or an additional processor, if you are using a multiprocessor system.
When you examine processor usage, consider the type of work the computer running SQL Server is performing. If SQL Server is performing a lot of calculations, such as queries involving aggregates or memory-bound queries that require no disk I/O, 100 percent of the processor’s time can be used. If this causes the performance of other applications to suffer, try changing the workload, for example, by dedicating the computer to running SQL Server.
Values around 100 percent, where many client requests are executing, may indicate that processes are queuing up, waiting for processor time, and causing a bottleneck. Resolve the problem by adding more powerful processors.