CPU Percentage Utilization (Windows Server 2008 R2)

Microsoft.Windows.Server.2008.R2.Processor.CPUUtilization (UnitMonitor)

Monitors total CPU (processor) utilization in Windows Server 2008 R2 Operating System.

Knowledge Base article:

Summary

The CPU Utilization (Processor Information\% Processor Time) for the system processor has exceeded the threshold. Once exceeded overall system performance may diminish significantly which will result in poor operating system and application performance.

This monitor is only valid for Windows Server 2008 R2 Operating System.

Causes

When a computer is under substantial load for a sustained period of time it can be caused by any of the following conditions:

Resolutions

To view recent history for the Processor related performance counters you can use the following view:

Start Processor Performance View

To resolve this issue an administrator can perform the following tasks:

1. Evaluate the % Processor Utilization counter for each of the processes running on the server. This can be done by using either Task Manager or the Performance Monitoring snap-in. Determine which process(s) are consuming the most resources and monitor them over time to determine whether they appear to be returning to normal performance ranges. If not, addition application specific diagnostics should be performed to determine the most appropriate way to resolve the issue.

2. If it is determined that client load has increased over time and the computer is simply no longer able to satisfy demand, perform additional performance monitoring procedures to determine if basic hardware upgrades can enable the computer to return to optimal performance ranges.

3. If it has been determined that the application has entered into an unhealthy state, possibly due to a product defect, it might be necessary to restart the application. If the issue persists, you might need to contact the application vendor.

Element properties:

TargetMicrosoft.Windows.Server.2008.Processor
Parent MonitorSystem.Health.PerformanceState
CategoryPerformanceHealth
EnabledFalse
Instance NameProcessor Information
Counter Name\% Processor Time
Frequency120
Alert GenerateFalse
Alert Auto ResolveTrue
Monitor TypeSystem.Performance.ConsecutiveSamplesThreshold
RemotableTrue
AccessibilityPublic
RunAsDefault

Source Code:

<UnitMonitor ID="Microsoft.Windows.Server.2008.R2.Processor.CPUUtilization" Accessibility="Public" Enabled="false" Target="Server2008!Microsoft.Windows.Server.2008.Processor" ParentMonitorID="SystemHealth!System.Health.PerformanceState" Remotable="true" Priority="Normal" TypeID="SystemPerf!System.Performance.ConsecutiveSamplesThreshold" ConfirmDelivery="false">
<Category>PerformanceHealth</Category>
<OperationalStates>
<OperationalState ID="OverThreshold" MonitorTypeStateID="ConditionTrue" HealthState="Error"/>
<OperationalState ID="UnderThreshold" MonitorTypeStateID="ConditionFalse" HealthState="Success"/>
</OperationalStates>
<Configuration>
<ComputerName>$Target/Host/Property[Type="Windows!Microsoft.Windows.Computer"]/NetworkName$</ComputerName>
<CounterName>% Processor Time</CounterName>
<ObjectName>Processor Information</ObjectName>
<InstanceName>$Target/Property[Type="WindowsServer!Microsoft.Windows.Server.Processor"]/PerfmonInstance$</InstanceName>
<Frequency>120</Frequency>
<Threshold>95</Threshold>
<Direction>greaterequal</Direction>
<NumSamples>5</NumSamples>
</Configuration>
</UnitMonitor>