Porcentaje total de tiempo de DPC del sistema operativo

Microsoft.Linux.SLES.9.OperatingSystem.TotalPercentDPCTime.Monitor (UnitMonitor)

Monitor Porcentaje total de tiempo de DPC del sistema operativo SUSE Linux Enterprise Server 9

Knowledge Base article:

Resumen

Este monitor comprueba el Porcentaje total de tiempo de DPC del sistema. Si se recibe una alerta de este monitor, podría ser necesaria la intervención del usuario para devolver el sistema a un estado operativo.

Porcentaje de tiempo de DPC es el porcentaje de tiempo que el procesador invierte en recibir y atender las llamadas a procedimiento diferidas (DPC). Las DPC, o interrupciones blandas, que se ejecutan con una prioridad inferior a la de las interrupciones estándar. Si un % de tiempo de DPC elevado es prolongado, podría haber un cuello de botella en el procesador, o bien un problema relacionado con una aplicación o con el hardware, lo que puede afectar de forma significativa al rendimiento global del sistema.

Causas

Un valor de % de tiempo de DPC elevado puede estar provocado por uno o varios de los siguientes elementos:

Resoluciones

Para determinar la causa raíz de una tasa elevada de DPC, aplique el procedimiento descrito a continuación. Observe la proporción de tiempo del procesador invertido en atender interrupciones y DPC. Para ello, supervise los siguientes contadores en tiempo real mediante el Monitor de sistema:

Compare los valores de los contadores % de tiempo de interrupción y % de tiempo de DPC con el valor de Procesador\% de tiempo de procesador para cada instancia de procesador.

Si una instancia de procesador presenta un valor continuado de % de tiempo de procesador superior al 85% y también invierte más del 15% de ese tiempo en atender interrupciones y DPC, es probable que el procesador sea el origen del cuello de botella de rendimiento. Este cuello de botella se puede solucionar si se actualizan los procesadores o se agregan más procesadores al equipo.

Si el procesador presenta un valor continuado de % de tiempo de procesador inferior al 85% y también invierte más del 15% de ese tiempo en atender interrupciones y DPC, puede que el problema de rendimiento esté provocado por un problema de una aplicación o de hardware.

Element properties:

TargetMicrosoft.Linux.SLES.9.OperatingSystem
Parent MonitorSystem.Health.PerformanceState
CategoryPerformanceHealth
EnabledTrue
Alert GenerateTrue
Alert SeverityError
Alert PriorityNormal
Alert Auto ResolveTrue
Monitor TypeMicrosoft.Unix.WSMan.Performance.Filtered.Average.Threshold.MonitorType
RemotableTrue
AccessibilityPublic
Alert Message
El porcentaje de tiempo de DPC es demasiado alto
Se ha superado el umbral para el contador de rendimiento Procesador\\% de tiempo de DPC\_Total. El valor que sobrepasó el umbral es: {0}.
RunAsDefault

Source Code:

<UnitMonitor ID="Microsoft.Linux.SLES.9.OperatingSystem.TotalPercentDPCTime.Monitor" Accessibility="Public" Target="Microsoft.Linux.SLES.9.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.9.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>//*[local-name()="Name"]</InstanceProperty>
<Value>$Data///*[local-name()="PercentDPCTime"]$</Value>
<Threshold>95</Threshold>
<NumSamples>5</NumSamples>
</Configuration>
</UnitMonitor>