Monitora o Percentual de Tempo de DPC.
A % de Tempo de DPC (Informações do Processador\% Tempo de DPC\_Total) do sistema excedeu o limite. O desempenho geral do sistema pode ser reduzido significativamente o que resultará em desempenho inadequado do sistema operacional e do aplicativo.
A % de Tempo de DPC é o percentual de tempo gasto pelo processador para receber e atender chamadas de procedimento deferidas (DPCs). DPCs são interrupções executadas em uma prioridade mais baixa do que as interrupções padrão. Se for mantida uma alta porcentagem de tempo de DPC, poderá haver um afunilamento de processador, ou um problema relacionado ao aplicativo ou hardware que pode reduzir significativamente o desempenho geral do sistema.
Um valor alto de % Tempo de DPC pode ser provocado por uma ou mais das seguintes condições:
Afunilamento do processador
Problema relacionado a software
Problema relacionado a driver de dispositivo
Para determinar o problema raiz de uma taxa alta de DPC, siga o processo descrito a seguir.
Observe a proporção do tempo do processador gasto para atender interrupções e DPCs. Para fazer isso, monitore os seguintes contadores em tempo real usando o Monitor do Sistema:
Informações do Processador\% Tempo do Processador
Informações do Processador\% Tempo de Interrupção
Informações do Processador\% Tempo de DPC
Se uma instância do processador estiver executando uma % de Tempo do Processador prolongada superior a 85% e também estiver passando mais de 15% desse tempo atendendo a Interrupções e/ou DPCs, é provável que o processador seja a origem de um afunilamento de desempenho. Esse afunilamento pode ser resolvido atualizando ou adicionando mais processadores ao computador.
Se o processador estiver executando uma % de Tempo de Processador prolongada inferior a 85% e também estiver gastando mais de 15% desse tempo atendendo a interrupções e/ou DPCs, o problema de desempenho poderá ser o resultado de um problema relacionado a hardware ou aplicativo.
Quando um dispositivo de hardware for a causa raiz, o administrador descobrirá que a % Tempo de DPC provavelmente aumentou substancialmente em um curto período de tempo. Isso normalmente ocorre quando novo hardware é instalado ou quando drivers foram atualizados. Se o administrador puder isolar o problema como um problema de hardware/driver de dispositivo, ele poderá ser resolvido com um trabalho conjunto com o fornecedor.
Em casos em que você está administrando um sistema de multiprocessador que não distribui interrupções simetricamente, é possível melhorar a distribuição da carga de trabalho do processador adicionando adaptadores de rede, de forma que exista um adaptador para cada processador. Geralmente, você adiciona adaptadores apenas quando precisa melhorar a taxa de transferência do sistema. Adaptadores de rede, como qualquer hardware adicional, incluem alguma sobrecarga intrínseca. No entanto, se um dos processadores estiver quase sempre ativo (ou seja, se Informações do Processador: % de Tempo do Processador = 100) e mais da metade desse tempo for gasto atendendo DPCs (se Informações do Processador: % de Tempo de DPC > 50), a adição de um adaptador provavelmente vai aprimorar o desempenho do sistema, desde que a largura de banda de rede disponível não esteja saturada.
Quando um aplicativo for a causa raiz, você descobrirá que as DPCs provavelmente estão sendo bloqueadas por uma aplicativo que emitiu uma chamada que está utilizando uma quantidade de tempo significativa para ser concluída. Durante esse tempo, as DPCs são bloqueadas e enfileiradas. Para determinar qual aplicativo é a causa raiz, você deve executar desempenho, rastreamento e diagnósticos avançados de desempenho e rastreamento para descobrir exatamente o aplicativo responsável pelo problema de desempenho.
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>