Monitor Porcentaje total de tiempo de DPC de procesador de SUSE Linux Enterprise Server 12
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.
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 12".
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.
Un estado de tiempo de DPC elevado puede deberse a una o varios de las siguientes razones:
Un cuello de botella en el procesador
Un problema relacionado con el software
Un problema relacionado con el hardware o con un dispositivo
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:
Procesador\% de tiempo de procesador
Procesador\% de tiempo de interrupción
Procesador\% de tiempo de DPC
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.
Target | Microsoft.Linux.SLES.12.Processor | ||
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.Processor.PercentDPCTime.Monitor" Accessibility="Public" Target="Microsoft.Linux.SLES.12.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.12.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>