Porcentaje total de tiempo de DPC de procesador

Microsoft.Linux.SLES.9.Processor.PercentDPCTime.Monitor (UnitMonitor)

Monitor Porcentaje total de tiempo de DPC de procesador de SUSE Linux Enterprise Server 9

Knowledge Base article:

Resumen

El porcentaje de tiempo de DPC (para un solo procesador) es elevado. El rendimiento del sistema puede verse afectado negativamente.

El tiempo de DPC de procesador es el tiempo que un procesador individual ha dedicado a recibir y atender llamadas a procedimiento diferidas (DPC). Las DPC son interrupciones que se ejecutan con una prioridad inferior a la de las interrupciones estándar. % de tiempo de DPC es un componente de % tiempo privilegiado porque las DPC se ejecutan en modo privilegiado. Si un porcentaje 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.

El umbral de monitor se analiza con el promedio de valores devueltos por sondeos realizados al agente, donde el parámetro de número de muestras controla el número de muestras incluidas en el cálculo del promedio. El valor devuelto por el agente es la media acumulada de los 5 valores más recientes consultados en intervalos de 1 minuto.

Configuración

La supervisión de procesadores individuales está deshabilitada de manera predeterminada. Para habilitar la supervisión, habilite la detección de objetos denominada "Detectar procesador de SUSE Linux Enterprise Server 9".

Configuración predeterminada

Parámetro

Valor predeterminado

Umbral

15

Intervalo (segundos)

300

Número de muestras

3

Se pueden usar invalidaciones para cambiar los valores de parámetros definidos anteriormente para todas las instancias o para instancias o grupos específicos.

Causas

Un estado de tiempo de DPC elevado puede deberse a una o varios de las siguientes razones:

Resoluciones

Para determinar la causa raíz de un estado de tiempo de DPC elevado, aplique el procedimiento descrito a continuación. Observe la proporción de tiempo del procesador invertido en atender interrupciones y DPC. Para ello, supervise las métricas siguientes:

Compare los valores de las métricas Porcentaje de tiempo de interrupción y Porcentaje de tiempo de DPC con el valor de Porcentaje de tiempo de procesador para cada instancia de procesador.

Si el Porcentaje de tiempo de procesador sostenido es > 85% y el Porcentaje de tiempo de interrupción o el Porcentaje de tiempo de DPC es > 15, los procesadores son probablemente la causa de un cuello de botella de rendimiento. Este cuello de botella se puede solucionar si se actualizan los procesadores o se agregan procesadores al equipo.

Si el Porcentaje de tiempo de procesador es < 85% y el Porcentaje de tiempo de interrupción o el Porcentaje de tiempo de DPC es > 15%, el problema de rendimiento puede deberse a un problema relacionado con hardware o con una aplicación.

Element properties:

TargetMicrosoft.Linux.SLES.9.Processor
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\. El valor que sobrepasó el umbral es: {0}.
RunAsDefault

Source Code:

<UnitMonitor ID="Microsoft.Linux.SLES.9.Processor.PercentDPCTime.Monitor" Accessibility="Public" Target="Microsoft.Linux.SLES.9.Processor" 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.Processor.PercentDPCTime.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>$Target/Property[Type="Unix!Microsoft.Unix.Processor"]/PerfmonInstance$</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>