views:

102

answers:

2

During performance testing, I found that the values of "Process(w3wp)\% Processor Time" are greater than 100. Some values are 237.1436486 312.5338052 341.2373994 264.4097661 191.6237736

I thought this value represents the CPU usage by w3wp process. I don't understand why the value is greater than 100%. Any insights appreciated. Thanks

+1  A: 

If you have multiple cores it can go over 100, it's the sum of the processor usage for each processor (core, or virtual core) so over 100 is normal (100*numberOfCores is the nax).

Use the Process(w3wp_Total) version of the counter if you want the overall CPU %, this caps out at 100.

Nick Craver
Hey, thanks. That makes sense, I will look for the counter you mentioned
geeth
@Nick Craver: Is there such a counter? The only one I know, other than "Process(w3wp)" would be "Process(_Total)", which of course is the sum for all processes. Personally, I simply did a ("Process(w3wp)\% Processor Time" / Environment.ProcessorCount) when having that problem.
Christian.K
I didn't find counter Process(w3wp_Total) but I considered doing the same ("Process(w3wp)\% Processor Time" / Environment.ProcessorCount) Thanks!
geeth
A: 

As Nick Craver already said, it is the combined value of all processors (logical or physical). To get a value between 0% and 100% simply divide it by the numbers of processors (e.g. Environment.ProcessorCount, assuming that you want to do it in .NET code).

Christian.K