Percentual de Tempo de DPC Total

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

Monitora o Percentual de Tempo de DPC.

Knowledge Base article:

Resumo

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.

Causas

Um valor alto de % Tempo de DPC pode ser provocado por uma ou mais das seguintes condições:

Resoluções

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:

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 quase sempre estiver ativo (ou seja, se as Informações do Processador: % Tempo do Processador = 100) e mais da metade de seu tempo for gasto atendendo a DPCs (se as Informações do Processador: % de Tempo de DPC > 50), a adição de um adaptador provavelmente melhorará o desempenho do sistema, desde que a largura de banda da rede disponível já 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.

Element properties:

TargetMicrosoft.Windows.Server.10.0.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
O Percentual de Tempo de DPC Total está alto demais
O limite do contador de desempenho Informações do Processador\\% Tempo de DPC\_Total foi excedido.
RunAsDefault

Source Code:

<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>