Monitoriza a Percentagem de Tempo de DPC.
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.
Uma % Tempo de DPC elevada poderá ser provocada por uma ou várias das seguintes situações:
Congestionamento do processador
Problema relacionado com software
Problema relacionado com o hardware ou com o controlador de dispositivo
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:
Informação do Processador\% Tempo do Processador
Informação do Processador\% Tempo de Interrupção
Informação do Processador\% Tempo de DPC
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.
Target | Microsoft.Windows.Server.6.2.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.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>