Monday, March 10, 2008

ITM 6.1 %_Processor_Time for NT_Process can be GT 100%

On a Windows system a process can accumulate more than 100% processor time. Perfmon calculates %_Processor_Time as the percentage of elapsed time that all threads of the process used. On a multiple CPU processor the total %_Processor_Time of a multi-threaded process can exceed 100% (i.e., multipe threads running on different processors at the same time).

In ITM 6.1 the %_Processor_Time attribute is defined as range attribute of 0-100. Therefore, in a situation you can't compare for values GE than 101. In general, monitoring the Process object for processor time bottlenecks is not really a very effective way of monitoring. For example, a process with four or more threads running on a 4-way might render a %Processor_Time > 100% when in reality no one thread is using more than 30%. A better way to monitor process CPU utilization on a Windows system is to use the NT_Thread/%_Processor_Time.

No comments: