Percentagem Total de Tempo de DPC

Microsoft.Windows.Server.6.2.OperatingSystem.TotalDPCTime (UnitMonitor)

Monitoriza a Percentagem de Tempo de DPC.

Knowledge Base article:

Resumo

A % Tempo de DPC (Informação do Processador\% Tempo de DPC\_Total) do sistema excedeu o limiar. O desempenho global do sistema poderá diminuir significativamente, o que resultará num fraco desempenho do sistema operativo e das aplicações.

% Tempo de DPC é a percentagem de tempo que o processador gasta a receber e a servir DPCS (Deferred Procedure Calls). As DPCs são interrupções executadas com uma prioridade mais baixa do que as interrupções padrão. Se uma % Tempo de DPC elevada for constante, poderá existir um estrangulamento do processador ou um problema relacionado com uma aplicação ou com o hardware que poderá reduzir o desempenho global do sistema de forma significativa.

Causas

Uma % Tempo de DPC elevada poderá ser provocada por uma ou várias das seguintes situações:

Resoluções

Para determinar a causa principal de uma frequência de DPC elevada, siga o processo indicado abaixo.

Observe a proporção do tempo do processador que é despendido a servir interrupções e DPC. Para tal, monitorize os seguintes contadores em tempo real utilizando o Monitor do Sistema:

Se uma instância do processador estiver a executar uma % Tempo do Processador sustentada > 85% e também a gastar > 15% desse tempo a servir interrupções e/ou DPCs, é provável que o processador esteja na origem de um congestionamento de desempenho. Este congestionamento poderá ser resolvido pela atualização ou adição de processadores ao computador.

Se o processador estiver a executar uma % Tempo do Processador sustentada < 85% e também a gastar > 15% desse tempo a servir interrupções e/ou DPCs, o problema de desempenho poderá resultar de um problema relacionado com uma aplicação ou com o hardware.

Se a causa principal for um dispositivo de hardware, um administrador determinará que a % Tempo de DPC aumentou provavelmente de forma substancial num curto período de tempo. Muitas vezes, isto acontece quando é instalado novo hardware ou são atualizados controladores. Se o administrador conseguir isolar o problema como um problema de controlador de hardware/dispositivo, este poderá ser resolvido juntamente com o fornecedor.

Se estiver a administrar um sistema multiprocessador que não distribua as interrupções de forma simétrica, muitas vezes poderá melhorar a distribuição da carga de trabalho dos processadores adicionando adaptadores de rede de modo a que exista um adaptador para cada processador. Geralmente, só deverá adicionar adaptadores quando precisar de melhorar o débito do sistema. Tal como qualquer hardware adicional, os adaptadores de rede têm alguma sobrecarga intrínseca. No entanto, se um dos processadores estiver quase sempre ativo (isto é, se Informação do Processador: % Tempo do Processador = 100) e mais de metade do seu tempo for gasto a servir DPCs (se Informação do Processador: % Tempo de DPC > 50), é provável que a adição de um adaptador melhore o desempenho do sistema, desde que a largura de banda de rede disponível ainda não esteja saturada.

Se a causa principal for uma aplicação, concluirá que as DPCs poderão estar a ser bloqueadas por uma aplicação que tenha emitido uma chamada que está a demorar muito tempo a ser concluída. Durante este tempo, as DPCs são bloqueadas e colocadas em fila. Para determinar que aplicação constitui a causa principal, deverá executar diagnósticos avançados de desempenho e rastreio para determinar com exatidão a aplicação responsável pelo problema de desempenho.

Element properties:

TargetMicrosoft.Windows.Server.6.2.OperatingSystem
Parent MonitorSystem.Health.PerformanceState
CategoryPerformanceHealth
EnabledFalse
Instance NameProcessor Information
Counter Name\% DPC Time
Frequency120
Alert GenerateTrue
Alert SeverityError
Alert PriorityNormal
Alert Auto ResolveTrue
Monitor TypeSystem.Performance.ConsecutiveSamplesThreshold
RemotableTrue
AccessibilityPublic
Alert Message
Percentagem Total de Tempo de DPC demasiado elevada
Foi excedido o limiar do contador de desempenho Informação do Processador\\% Tempo de DPC\_Total.
RunAsDefault

Source Code:

<UnitMonitor ID="Microsoft.Windows.Server.6.2.OperatingSystem.TotalDPCTime" Accessibility="Public" Enabled="false" Target="WindowsServer!Microsoft.Windows.Server.6.2.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.6.2.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>