SUSE Linux Enterprise Server 12 Operating System Total Percent DPC Time Monitor
The total percentage of DPC time (for all processors) is high. System performance may be adversely affected.
Total DPC time is the time that all processors spent receiving and servicing deferred procedure calls (DPCs). DPCs are interrupts that run at a lower priority than standard interrupts. % DPC Time is a component of % Privileged Time because DPCs are executed in privileged mode. If a high % DPC Time is sustained, there may be a processor bottleneck or an application or hardware related issue that can significantly diminish overall system performance.
The monitor threshold is analyzed against an average of values returned in polls to the agent, where the Number of Samples parameter controls the number of samples included in the calculation of the average. The value returned by the agent is the rolling average of the 5 most recent values queried at 1 minute intervals.
Default Configuration
Parameter | Default Value |
Threshold | 15 |
Interval (seconds) | 300 |
Number of Samples | 3 |
Overrides can be used to change the parameter values defined above for all instances or for specific instances or groups.
A high DPC time condition can be caused by one or more of the following:
Processor bottleneck
Software-related problem
Hardware or device driver related problem
To determine the root cause of a high DPC time condition, follow the process outlined below. Observe the proportion of the processor time that is spent servicing interrupts and DPCs. To do this, monitor the following metrics:
Processor\% Processor Time (_Total)
Processor\% Interrupt Time (_Total)
Processor\% DPC Time (_Total)
Compare the values of the % Interrupt Time (_Total) and % DPC Time (_Total) metrics to % Processor Time (_Total).
If the sustained % Processor Time (_Total) is > 85% and the % Interrupt Time (_Total) or % DPC Time (_Total) is > 15%, the processors are probably the source of a performance bottleneck. This bottleneck can be addressed by upgrading or adding processors to the computer.
If the sustained % Processor Time (_Total) is < 85% and the % Interrupt Time (_Total) or Total % DPC Time (_Total) is > 15%, the performance issue may be the result of either an application or hardware related issue.
Target | Microsoft.Linux.SLES.12.OperatingSystem | ||
Parent Monitor | System.Health.PerformanceState | ||
Category | PerformanceHealth | ||
Enabled | True | ||
Alert Generate | True | ||
Alert Severity | Error | ||
Alert Priority | Normal | ||
Alert Auto Resolve | True | ||
Monitor Type | Microsoft.Unix.WSMan.Performance.Filtered.Average.Threshold.MonitorType | ||
Remotable | True | ||
Accessibility | Public | ||
Alert Message |
| ||
RunAs | Default |
<UnitMonitor ID="Microsoft.Linux.SLES.12.OperatingSystem.TotalPercentDPCTime.Monitor" Accessibility="Public" Target="Microsoft.Linux.SLES.12.OperatingSystem" TypeID="Unix!Microsoft.Unix.WSMan.Performance.Filtered.Average.Threshold.MonitorType" Enabled="true" ParentMonitorID="SystemHealth!System.Health.PerformanceState">
<Category>PerformanceHealth</Category>
<AlertSettings AlertMessage="Microsoft.Linux.SLES.12.OperatingSystem.TotalPercentDPCTime.AlertMessage">
<AlertOnState>Error</AlertOnState>
<AutoResolve>true</AutoResolve>
<AlertPriority>Normal</AlertPriority>
<AlertSeverity>Error</AlertSeverity>
<AlertParameters>
<AlertParameter1>$Data/Context/Value$</AlertParameter1>
</AlertParameters>
</AlertSettings>
<OperationalStates>
<OperationalState HealthState="Success" MonitorTypeStateID="UnderThreshold" ID="UnderThreshold"/>
<OperationalState HealthState="Error" MonitorTypeStateID="OverThreshold" ID="OverThreshold"/>
</OperationalStates>
<Configuration>
<TargetSystem>$Target/Host/Property[Type="Unix!Microsoft.Unix.Computer"]/NetworkName$</TargetSystem>
<Uri>http://schemas.microsoft.com/wbem/wscim/1/cim-schema/2/SCX_ProcessorStatisticalInformation?__cimnamespace=root/scx</Uri>
<Filter/>
<SplitItems>true</SplitItems>
<Interval>300</Interval>
<ObjectName>Processor</ObjectName>
<CounterName>% Interrupt Time</CounterName>
<InstanceName>_Total</InstanceName>
<InstanceProperty>/DataItem/WsManData/*[local-name(.)='SCX_ProcessorStatisticalInformation']/*[local-name(.)='Name']</InstanceProperty>
<Value>$Data/WsManData/*[local-name(.)='SCX_ProcessorStatisticalInformation']/*[local-name(.)='PercentDPCTime']$</Value>
<Threshold>15</Threshold>
<NumSamples>3</NumSamples>
</Configuration>
</UnitMonitor>