Monitor de Percentagem de Tempo de DPC Total do Sistema Operativo Red Hat Enterprise Linux Server 7
A percentagem total do tempo de DPC (para todos os processadores) é elevada. O desempenho do sistema pode ser afetado negativamente.
O tempo de DPC total corresponde ao tempo que todos os processadores despenderam a receber e a servir chamadas de procedimento diferidas (DPC). DPCs são interrupções executadas com uma prioridade mais baixa que as interrupções padrão. % Tempo de DPC é um componente de % Tempo Privilegiado porque as DPCs são executadas em modo privilegiado. Uma % Tempo de DPC constante pode causar um estrangulamento do processador ou um problema relacionado com uma aplicação ou com o hardware, que poderá reduzir significativamente o desempenho global do sistema.
O limiar do monitor é comparado com a média dos valores devolvidos nas consultas ao agente, e o número de amostras incluídas no cálculo da média é controlado pelo parâmetro Número de Amostras. O valor devolvido pelo agente é a média móvel dos últimos 5 valores consultados a intervalos de 1 minuto.
Configuração Predefinida
Parâmetro | Valor Predefinido |
Limiar | 15 |
Intervalo (segundos) | 300 |
Número de Amostras | 3 |
As substituições podem ser utilizadas para alterar os valores dos parâmetros acima definidos para todas as instâncias ou para instâncias específicas ou grupos.
Uma condição de tempo de DPC elevado pode ser causada por uma ou mais 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 de raiz de uma condição de tempo de DPC elevado, siga o processo indicado abaixo. Observe a proporção do tempo do processador que é despendido a servir interrupções e DPC. Para tal, monitorize as métricas seguintes:
Processador\% de Tempo do Processado (_Total)
Processador\% Tempo de Interrupção (_Total)
Processador\% de Tempo de DPC (_Total)
Compare os valores da % de Tempo de Interrupção (_Total) e das métricas de % de Tempo de DPC (_Total) com a % de Tempo do Processador (_Total).
Se a % de Tempo do Processador (_Total) constante for > 85% e a % de Tempo de Interrupção (_Total) ou a % de Tempo de DPC (_Total) for > 15%, os processadores são provavelmente a origem de um estrangulamento do desempenho. Este congestionamento pode ser resolvido pela atualização ou adição de processadores ao computador.
Se a % de Tempo do Processador (_Total) constante for < 85% e a % de Tempo de Interrupção (_Total) ou a % Total de Tempo de DPC (_Total) for > 15%, o problema de desempenho pode resultar de uma questão relacionada com uma aplicação ou com o hardware.
Target | Microsoft.Linux.RHEL.7.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.RHEL.7.OperatingSystem.TotalPercentDPCTime.Monitor" Accessibility="Public" Target="Microsoft.Linux.RHEL.7.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.RHEL.7.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>