Porcentaje de tiempo de DPC de la CPU (Windows Server 2008 R2)

Microsoft.Windows.Server.2008.R2.Processor.PercentDPCTime (UnitMonitor)

Supervisa el porcentaje de tiempo de DPC en el sistema operativo Windows Server 2008 R2.

Knowledge Base article:

Resumen

El % de tiempo de DPC (Información de procesador\% de tiempo de DPC) del procesador 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.

% 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 valor de % 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.

Este monitor sólo es válido para el sistema operativo Windows Server 2008 R2.

Causas

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

Soluciones

Para ver el historial reciente de los contadores de rendimiento relacionados con el procesador, puede usar la vista siguiente:

Iniciar vista de rendimiento de procesador

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.

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 Procesador: % de tiempo de procesador = 100) y más de la mitad de este tiempo se invierte en atender DPC (si 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.

Element properties:

TargetMicrosoft.Windows.Server.2008.Processor
Parent MonitorSystem.Health.PerformanceState
CategoryPerformanceHealth
EnabledFalse
Instance NameProcessor Information
Counter Name\% DPC Time
Frequency120
Alert GenerateFalse
Alert Auto ResolveTrue
Monitor TypeSystem.Performance.ConsecutiveSamplesThreshold
RemotableTrue
AccessibilityPublic
RunAsDefault

Source Code:

<UnitMonitor ID="Microsoft.Windows.Server.2008.R2.Processor.PercentDPCTime" Accessibility="Public" Enabled="false" Target="Server2008!Microsoft.Windows.Server.2008.Processor" ParentMonitorID="SystemHealth!System.Health.PerformanceState" Remotable="true" Priority="Normal" TypeID="SystemPerf!System.Performance.ConsecutiveSamplesThreshold" ConfirmDelivery="false">
<Category>PerformanceHealth</Category>
<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>$Target/Property[Type="WindowsServer!Microsoft.Windows.Server.Processor"]/PerfmonInstance$</InstanceName>
<Frequency>120</Frequency>
<Threshold>15</Threshold>
<Direction>greaterequal</Direction>
<NumSamples>5</NumSamples>
</Configuration>
</UnitMonitor>