The counter, Process(sqlservr)\% Processor Time
, is hovering around 300% on one of my database servers. This counter reflects the percent of total time SQL Server spent running on CPU (user mode + privilege mode). The book, Sql Server 2008 Internals and Troubleshooting, says that anything greater than 80% is a problem.
How is it possible for that counter to be over 100%?
There are two counters with the same name:
Process\% Processor Time
: The sum of processor time on each processorProcessor(_Total)\% Processor Time
: The total for all processorsYour question indicates you're using the first counter, which means that its maximum value is 100% * (no of CPUs).
So if you have 4 CPUs, then the total maximum is 400%, and 80% is actually (400 * 0.8 =) 320% (and for 8 CPUs it's 640%, etc etc)
This value is calculated over the base line of (No of Logical CPUS * 100), So this is going to be a calculated over a baselin of more than 100.