Monitor Porcentaje total de tiempo de DPC del procesador de Red Hat Enterprise Linux Server 5
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.
Un valor de % de tiempo de DPC elevado puede estar provocado por uno o varios de los siguientes elementos:
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 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:
Procesador\% de tiempo de procesador
Procesador\% de tiempo de interrupción
Procesador\% de tiempo de DPC
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.
Target | Microsoft.Linux.RHEL.5.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.RHEL.5.Processor.PercentDPCTime.Monitor" Accessibility="Public" Target="Microsoft.Linux.RHEL.5.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.RHEL.5.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>//*[local-name()="Name"]</InstanceProperty>
<Value>$Data///*[local-name()="PercentDPCTime"]$</Value>
<Threshold>15</Threshold>
<NumSamples>5</NumSamples>
</Configuration>
</UnitMonitor>