Percentagem de Tempo de DPC do Processador

Microsoft.Linux.RHEL.7.Processor.PercentDPCTime.Monitor (UnitMonitor)

Monitor de Percentagem de Tempo de DPC de Processador do Red Hat Enterprise Linux Server 7

Knowledge Base article:

Resumo

A percentagem de tempo de DPC (para um único processador) é elevada. O desempenho do sistema pode ser afetado negativamente.

O tempo de DPC do processador é o tempo que um único processador despende 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

A monitorização dos processadores individuais está desativada por predefinição. Ative a monitorização, ativando a deteção de objetos denominada "Detetar Processador do Red Hat Enterprise Linux Server 7".

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.

Causas

Uma condição de tempo de DPC elevado pode ser causada por uma ou mais das seguintes situações:

Resoluções

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:

Compare os valores de % de Tempo de Interrupção e métricas de % de Tempo de DPC com a % de Tempo do Processador para cada instância de processador.

Se a % de Tempo do Processador constante for > 85% e a % de Tempo de Interrupção ou a % de Tempo de DPC 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 constante for < 85% e a % de Tempo de Interrupção ou a % Total de Tempo de DPC for > 15%, o problema de desempenho pode resultar de uma questão relacionada com uma aplicação ou com o hardware.

Element properties:

TargetMicrosoft.Linux.RHEL.7.Processor
Parent MonitorSystem.Health.PerformanceState
CategoryPerformanceHealth
EnabledTrue
Alert GenerateTrue
Alert SeverityError
Alert PriorityNormal
Alert Auto ResolveTrue
Monitor TypeMicrosoft.Unix.WSMan.Performance.Filtered.Average.Threshold.MonitorType
RemotableTrue
AccessibilityPublic
Alert Message
Percentagem de Tempo de DPC demasiado elevada
Foi excedido o limiar do contador de desempenho Processador\\% de Tempo de DPC\. O valor que excedeu o limiar é: {0}.
RunAsDefault

Source Code:

<UnitMonitor ID="Microsoft.Linux.RHEL.7.Processor.PercentDPCTime.Monitor" Accessibility="Public" Target="Microsoft.Linux.RHEL.7.Processor" 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.Processor.PercentDPCTime.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>$Target/Property[Type="Unix!Microsoft.Unix.Processor"]/PerfmonInstance$</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>