Supervisa el porcentaje de tiempo de DPC.
El % de tiempo de DPC (Información de procesador\% de tiempo de DPC\_Total) del sistema ha superado el umbral. El rendimiento del sistema en general puede disminuir significativamente, lo que afectará al rendimiento del sistema operativo y de las aplicaciones.
El % 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 son interrupciones que se ejecutan con una prioridad inferior a la de las interrupciones estándar. 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.
Un valor alto de % de tiempo de DPC 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:
Información de procesador\% de tiempo de procesador
Información de procesador\% de tiempo de interrupción
Información de procesador\% de tiempo de DPC
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.
Cuando la causa raíz es un dispositivo de hardware, un administrador observará que, probablemente, el % de tiempo de DPC ha aumentado de forma significativa en un período de tiempo corto. Esto suele ocurrir cuando se instala hardware nuevo o se actualizan controladores. Si el administrador puede aislar el problema y descubre que se trata de un problema de controlador de dispositivo o hardware, se puede solucionar en colaboración con el proveedor.
En los casos en que se administra un sistema con varios procesadores que no distribuye las interrupciones de forma simétrica, normalmente se puede mejorar la distribución de la carga del procesador si se agregan adaptadores de red de forma que exista uno por cada procesador. Por lo general, sólo se agregan adaptadores cuando es necesario mejorar el rendimiento del sistema. Los adaptadores de red, como cualquier hardware nuevo, conllevan un procesamiento intrínseco. Sin embargo, si uno de los procesadores está activo casi siempre (es decir, si Información del procesador: % de tiempo de procesador = 100) y más de la mitad de este tiempo se invierte en atender DPC (si Información del procesador: % de tiempo de DPC > 50), entonces la adición de un adaptador suele mejorar el rendimiento del sistema, siempre que el ancho de banda de la red disponible no esté ya saturado.
Cuando la causa raíz es una aplicación, es probable que las DPC estén siendo bloqueadas por una aplicación que ha emitido una llamada, que está tardando bastante tiempo en finalizar. Durante este tiempo, las DPC se bloquean y se colocan en cola. Para determinar qué aplicación es la causa raíz, se deben realizar comprobaciones avanzadas de rendimiento, seguimiento y diagnóstico para localizar la aplicación exacta responsable del problema de rendimiento.
Target | Microsoft.Windows.Server.10.0.OperatingSystem | ||
Parent Monitor | System.Health.PerformanceState | ||
Category | PerformanceHealth | ||
Enabled | False | ||
Instance Name | Processor Information | ||
Counter Name | \% DPC Time | ||
Frequency | 120 | ||
Alert Generate | True | ||
Alert Severity | Error | ||
Alert Priority | Normal | ||
Alert Auto Resolve | True | ||
Monitor Type | System.Performance.ConsecutiveSamplesThreshold | ||
Remotable | True | ||
Accessibility | Public | ||
Alert Message |
| ||
RunAs | Default |
<UnitMonitor ID="Microsoft.Windows.Server.10.0.OperatingSystem.TotalDPCTime" Accessibility="Public" Enabled="false" Target="ServervNext!Microsoft.Windows.Server.10.0.OperatingSystem" ParentMonitorID="SystemHealth!System.Health.PerformanceState" Remotable="true" Priority="Normal" TypeID="SystemPerf!System.Performance.ConsecutiveSamplesThreshold" ConfirmDelivery="false">
<Category>PerformanceHealth</Category>
<AlertSettings AlertMessage="Microsoft.Windows.Server.10.0.OperatingSystem.TotalDPCTime.AlertMessage">
<AlertOnState>Error</AlertOnState>
<AutoResolve>true</AutoResolve>
<AlertPriority>Normal</AlertPriority>
<AlertSeverity>Error</AlertSeverity>
<AlertParameters/>
</AlertSettings>
<OperationalStates>
<OperationalState ID="OverThreshold" MonitorTypeStateID="ConditionTrue" HealthState="Error"/>
<OperationalState ID="UnderThreshold" MonitorTypeStateID="ConditionFalse" HealthState="Success"/>
</OperationalStates>
<Configuration>
<ComputerName>$Target/Host/Property[Type="Windows!Microsoft.Windows.Computer"]/NetworkName$</ComputerName>
<CounterName>% DPC Time</CounterName>
<ObjectName>Processor Information</ObjectName>
<InstanceName>_Total</InstanceName>
<Frequency>120</Frequency>
<Threshold>95</Threshold>
<Direction>greater</Direction>
<NumSamples>5</NumSamples>
</Configuration>
</UnitMonitor>