Monitor do Percentual Total de Tempo de DPC do Sistema Operacional Linux Universal
O percentual total do tempo de DPC (para todos os processadores) está alto. O desempenho do sistema poderá ser afetado negativamente.
O tempo total de DPC é o tempo que todos os processadores gastaram recebendo e atendendo DPCs (chamadas de procedimento adiadas). As DPCs são interrupções que são executadas em uma prioridade mais baixa do que as interrupções padrão. O Percentual de Tempo de DPC é um componente de Percentual de Tempo Privilegiado porque as DPCs são executadas no modo privilegiado. Se for mantido um alto Percentual de Tempo de DPC, poderá haver um gargalo de processador ou um problema relacionado ao aplicativo ou hardware que poderá reduzir significativamente o desempenho geral do sistema.
O limite do monitor é analisado em relação a uma média de valores retornados em sondagens no agente, em que o parâmetro Número de Amostras controla o número de amostras incluídas no cálculo da média. O valor retornado pelo agente é a média móvel dos 5 valores mais recentes consultados em intervalos de 1 minuto.
Configuração Padrão
Parâmetro | Valor Padrão |
Limite | 15 |
Intervalo (segundos) | 300 |
Número de Amostras | 3 |
As substituições podem ser usadas para alterar os valores dos parâmetros definidos acima para todas as instâncias ou para instâncias ou grupos específicos.
Um alto tempo de DPC pode ser causado por uma ou mais das seguintes condições:
Afunilamento do processador
Problema relacionado a software
Problema relacionado a driver de dispositivo
Para determinar a causa principal de uma condição de alto tempo de DPC, siga o processo descrito a seguir. Observe a proporção do tempo do processador gasto para atender interrupções e DPCs. Para isso, monitore as seguintes métricas:
Processador\% Tempo de Processador (_Total)
Processador\% Tempo de Interrupção (_Total)
Processador\% Tempo de DPC (_Total)
Compare os valores de % Tempo de Interrupção (_Total) e % Tempo de DPC (_Total) com % Tempo de Processador (_Total).
Se o % de Tempo de Processador (_Total) mantido for > 85% e o % de Tempo de Interrupção (_Total) ou o % de Tempo de DPC (_Total) for > 15%, os processadores provavelmente serão a origem de um gargalo de desempenho. Esse gargalo pode ser resolvido atualizando ou adicionando processadores ao computador.
Se o % de Tempo de Processador (_Total) mantido for < 85% e o % de Tempo de Interrupção (_Total) ou o % de Tempo de DPC (_Total) for > 15%, o problema de desempenho poderá ser resultado de um problema de aplicativo ou hardware.
Target | Microsoft.Linux.Universal.OperatingSystem | ||
Parent Monitor | System.Health.PerformanceState | ||
Category | PerformanceHealth | ||
Enabled | True | ||
Alert Generate | True | ||
Alert Severity | Error | ||
Alert Priority | Normal | ||
Alert Auto Resolve | True | ||
Monitor Type | Microsoft.Unix.WSMan.Performance.Filtered.Average.Threshold.MonitorType | ||
Remotable | True | ||
Accessibility | Public | ||
Alert Message |
| ||
RunAs | Default |
<UnitMonitor ID="Microsoft.Linux.Universal.OperatingSystem.TotalPercentDPCTime.Monitor" Accessibility="Public" Target="Universal!Microsoft.Linux.Universal.OperatingSystem" TypeID="Unix!Microsoft.Unix.WSMan.Performance.Filtered.Average.Threshold.MonitorType" Enabled="true" ParentMonitorID="SystemHealth!System.Health.PerformanceState">
<Category>PerformanceHealth</Category>
<AlertSettings AlertMessage="Microsoft.Linux.Universal.OperatingSystem.TotalPercentDPCTime.AlertMessage">
<AlertOnState>Error</AlertOnState>
<AutoResolve>true</AutoResolve>
<AlertPriority>Normal</AlertPriority>
<AlertSeverity>Error</AlertSeverity>
<AlertParameters>
<AlertParameter1>$Data/Context/Value$</AlertParameter1>
</AlertParameters>
</AlertSettings>
<OperationalStates>
<OperationalState HealthState="Success" MonitorTypeStateID="UnderThreshold" ID="UnderThreshold"/>
<OperationalState HealthState="Error" MonitorTypeStateID="OverThreshold" ID="OverThreshold"/>
</OperationalStates>
<Configuration>
<TargetSystem>$Target/Host/Property[Type="Unix!Microsoft.Unix.Computer"]/NetworkName$</TargetSystem>
<Uri>http://schemas.microsoft.com/wbem/wscim/1/cim-schema/2/SCX_ProcessorStatisticalInformation?__cimnamespace=root/scx</Uri>
<Filter/>
<SplitItems>true</SplitItems>
<Interval>300</Interval>
<ObjectName>Processor</ObjectName>
<CounterName>% Interrupt Time</CounterName>
<InstanceName>_Total</InstanceName>
<InstanceProperty>/DataItem/WsManData/*[local-name(.)='SCX_ProcessorStatisticalInformation']/*[local-name(.)='Name']</InstanceProperty>
<Value>$Data/WsManData/*[local-name(.)='SCX_ProcessorStatisticalInformation']/*[local-name(.)='PercentDPCTime']$</Value>
<Threshold>15</Threshold>
<NumSamples>3</NumSamples>
</Configuration>
</UnitMonitor>