Using the Windows Performance Monitor to monitor Processors

Here we give a brief overview of processor performance monitoring with the Microsoft Performance monitor.  The Windows Performance monitor (perfmon) is a tool that you can use to take a look at an individual Windows server.  It is including with Windows 2008 and other versions of Windows.

The tool lets you:

  • Track performance of services and applications
  • Generate alerts when performance exceeds thresholds

The limiting factors on performance on a single machine are:

  • Disk throughput
  • Memory
  • Processor speed and number of process
  • Network card throughput

You use the Performance Monitor to add specific counters to the dashboard.  Each metric is shown in a different color.  You can pick line or bar charts.  Click anywhere on the chart to drill into the specific value of that item at that point in time.

In order to use the Performance Monitor, you need to be a member of the Administrators and Performance Log Users group in Active Directory.

Here is the main screen.  You add monitor groups by category.  In this post we are going to look at some of the processor-related monitoring metrics.

You cannot make sense of the performance monitor if all the scales on the vertical axis are the same, because more than one the metric would be grouped at the top, where you cannot read them. So you would want to change the scale for each variable.

Windows-Performance-1-300x215

Let’s look at processor performance metrics.

Microsoft says a processor bottleneck begins to perform when:

  • Process % Processor Time > 80%
  • Processor Queue Length > 2
  • High values in interrupts

Taking a look at this view of processor-related performance metrics, we have selected % Processor Time and Interrupts per Second.  We will only list two, because the screen will get to busy to read

Monitor Processors

This machine has 2 Intel I7 CPUs running at 2.4 GHz, each with 4 cores.  The Performance Monitor shows both processors together.  This server is running Apache.  What do these numbers tell us?

Below we give general definitions of each metric without describing whether what we are observing now is normal or not, since that is a topic unto itself.

% Processor Time

This is the amount of time that the CPU is busy as opposed to waiting.

Interrupts per second

An interrupt is just that: the processor has to stop what it is doing to handle something that the operating system hands it.  A hardware interrupt example is, for example, pressing a key on the keyboard or tasks required for the disk or network card.

Windows-Performance-3-300x115

A very high rate of interrupts could indicate a disk or adaptor problem or it could mean a problem between distributing the load between processors.

% DPC Time

DPC means deferred procedure call.  % DPC Time is the percentage of time that the processor is in a deferred procedure call.  Microsoft says these are interrupts that have a lower priority than the interrupts measured in the other metric.  Presumably that means they are deferred to some kind of queue, which is what we explain next.

DPCs queued per second

DPCs that have been waiting in a queue.

Here is the complete list of measurable quantities in the Performance Monitoring screen:

Windows-Performance-4-277x300

%C1 Time, C2, C3 Time

These show the percent of time that the processors spend in low-power idle state.   In other posts we will dig more deeply into processor monitoring and configuration.

Suggestions for further Reading:

Windows Performance Monitoring Getting Started

Analyzing Processor Activity