By Simon Bell • Sep 1, 2017

Metrics That Matter: Processor and Process Metrics for MS Exchange

In the second part of this series on how PRTG can help the Exchange Admin, we looked at custom sensors and how they can be used to extract useful monitoring data from the huge library of WMI and PerfMon counters available on Exchange systems. We also learned a couple of tricks for managing this “mountain of metrics”.  

But, even with our list of nicely formatted performance counter names, there are still many thousands of them to choose from. So, which ones are the most useful for troubleshooting our Exchange infrastructure? To keep things manageable, we’ll break the counter list into groups. Here we’ll start with Processor and Process related metrics, looking at some of the more important ones, what they measure, and where possible recommend the “healthy” values you should be looking for.

Disclaimer - Obviously, the values seen in your deployment will vary, depending on the architecture and size of the environment, and the available metrics may also depend on Exchange version in use, and the roles configured on the server.

Processor Counters




Processor(_Total)\% Processor Time

Shows the percentage of time that the processor is executing application or operating system processes. This is when the processor isn't idle.

Avg < 75%


Processor(_Total)\% User Time

Shows the percentage of processor time spent in user mode. User mode is a restricted processing mode designed for applications, environment subsystems, and integral subsystems.

<  75%.

Processor(_Total)\% Privileged Time

Shows the percentage of processor time spent in privileged mode. Privileged mode is a processing mode designed for operating system components and hardware-manipulating drivers. It allows direct access to hardware and all memory. If overall CPU load is high, this can show which process is causing it.

If most CPU consumption is in privileged mode, this can indicate hardware problems.

< 75%.

Process(*)\% Processor Time

Shows the percentage of elapsed processor time that all process threads used to execute instructions. An instruction is the basic unit of execution in a computer. A thread is the object that executes instructions, and a process is the object created when a program is run. Code executed to handle some hardware interruptions and trap conditions are included in this count.


System\Processor Queue Length (all instances)

Indicates the number of threads each processor is servicing. Processor Queue Length can be used to identify if processor contention or high CPU utilization is caused by the processor capacity being insufficient to handle the workloads assigned to it. Processor Queue Length shows the number of threads that are delayed in the Processor Ready Queue and are waiting to be scheduled for execution. The value listed is the last observed value at the time the measurement was taken.

On systems with multiprocessors, divide the queue length by the number of physical processors. A multiprocessor system configured using hard processor affinity (processes are assigned to specific CPU cores), which has large values for the queue length, can indicate that the configuration is unbalanced.


Shouldn't be greater than 5 per processor.


Process Working Set Counter




Process(_Total)\Working Set

Shows the current size, in bytes, of the working set of this process. The working set is the set of memory pages touched recently by the threads in the process. If free memory in the computer is above a threshold, pages are left in the working set of a process event if they aren't in use. When free memory falls below a threshold, pages are trimmed from working sets. If they are needed, they will be soft-faulted back to the working set before leaving main memory.

Fluctuations in working sets cause paging. Correctly size the paging file (RAM+10)




Process Handle Counter




Process(*)\Handle Count

Shows the total number of handles currently open by this process. This number is the sum of the handles currently open by each thread in this process.



These are the important Processor and Process related metrics that can be used to determine the health and performance of an Exchange system. All of which can be easily and quickly checked using PRTG’s Custom Sensors, as we saw in the previous article Your Secret Weapon for Monitoring Exchange: Custom WMI, PerfMon and Script Sensors

Look out for more in this Exchange “Metrics That Matter” series where upcoming articles will look at:

  • Memory, Memory Paging, Memory Consumption
  • .NET Framework and Network
  • Exchange & Domain Controllers, Client Access Server
  • Monitoring different Exchange Roles