Related to this question: How can a Perfmon "% Processor Time" counter be over 100%?

I was manually observing processes in Task Manager when a user reported a problem and the Oracle process was using 80%-95% for a sustained period of time (5-15 minutes).

So I've been using perfmon for the last couple days to track that process and noticed it going OVER 100% for short periods, so it's apparently in perfmon it's the total over all the processors.

My question is that the 80-95% I was seeing in Task manager would really have been corresponding to 160-180% in perfmon, right?

(obviously factoring in that some processes may not be able to use all processors efficiently).

Task Manager was showing 80-95% CPU here:

enter image description here

Perf Monitor can spike above 100% on the line for a single process object:

enter image description here

  • I recommend using ProcessExplorer, as it gives better detail on what's going on. Clicking on graphs at the top can give you better view, especially with multicore. Double-clicking on a process can give you a call-stack to help in pinpointing the problem. – GregC Sep 10 '13 at 16:00
  • possible duplicate of How can a Perfmon "% Processor Time" counter be over 100%? – Greg Askew Sep 10 '13 at 16:01
  • @GregAskew It's related but not a duplicate. I'm trying to confirm that the process percentage on an individual process in Task Manager DOES NOT match that in perfmon and that it's more like the percentage of overall processor time, not the total of the percentages of each processor. – Cade Roux Sep 10 '13 at 16:20
  • @GregC Yes. I'm just trying to make sure that what I was seeing in Task Manager was really what I will now be expecting in the perfmon as 160-180% processor utilization. – Cade Roux Sep 10 '13 at 16:21

Examining Processor Time Data on MSDN

On multiprocessor systems, the Processor\% Processor Time value reported by System Monitor will never exceed 100 percent for any particular processor or thread.

On the other hand, the value of the % Processor Time reported for the Process object can report values over 100 percent; if such values occur, this could indicate that threads of the process are cumulatively using more than 100 percent of a processor.

It basically says that when examining a Process (with multiple paths of execution), you'd see over 100% if there are more than one core running the code concurrently. Process has multiple cores available to it, and it can choose to run on a few.

On the other hand, if examining a CPU Thread, you'd never see a value above 100%, since that's the actual resource being measured. CPU Thread is Microsoft speak for CPU Core: there are two Threads in an HT-enabled core.

| improve this answer | |
  • This answer doesn't address how task manager shows it - it never shows a single process over 100%. If task manager shows 80%, I'm assuming on a dual-proc machine, that's really equivalent to showing 160% in perfmon. – Cade Roux Sep 10 '13 at 21:53
  • I added screen shots. My question is that Task Manager will always show a process' portion of the total 100% of CPU, so to compare an observance in Task Manager with a log in PerfMon, you would have to multiply by the number of CPUs. – Cade Roux Sep 11 '13 at 19:19

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.