Monitor de Percentagem de Tempo de DPC Total do Processador do SUSE Linux Enterprise Server 11
A percentagem de tempo de DPC (para um único processador) é elevada. O desempenho do sistema pode ser afetado de forma adversa.
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.
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 SUSE Linux Enterprise Server 11".
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 Processador
Processador\% de Tempo de Interrupção
Processador\% de Tempo de DPC
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 for continuamente > 85% e a % de Tempo de Interrupção ou a % de Tempo de DPC for > 15%, é possível que os processadores estejam a causar um estrangulamento de desempenho. Este estrangulamento pode ser resolvido com uma atualização ou com a adição de processadores ao computador.
Se a % de Tempo do Processador for continuamente < 85% e a % de Tempo de Interrupção ou a % de Tempo de DPC Total for > 15%, a falta de desempenho pode dever-se a um problema relacionado com uma aplicação ou com o hardware.
Target | Microsoft.Linux.SLES.11.Processor | ||
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.SLES.11.Processor.PercentDPCTime.Monitor" Accessibility="Public" Target="Microsoft.Linux.SLES.11.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.SLES.11.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>