Utilização do processador de agente

Microsoft.SystemCenter.HealthService.SCOMpercentageCPUTimeMonitor (UnitMonitor)

Monitor de todos os processos de agente para identificar potenciais problemas com o agente utilizando demasiado tempo do processador.

Knowledge Base article:

Resumo

Este monitor calcula a utilização total da CPU pelos agentes do Operations Manager e processos relacionados, e gera um alerta quando a utilização da CPU excede um limiar especificado num número especificado de amostras consecutivas.

O script subjacente deste monitor funciona localizando e fazendo a amostragem da utilização da CPU pelo processo do agente do Operations Manager (HealthService.exe), pelo respetivo processo subordinado do anfitrião de monitorização (MonitoringHost.exe) e pelos processos subordinados desses processos de anfitrião de monitorização (cscript.exe, PowerShell.exe, etc.). O script executa o cálculo três vezes e produz a média das três amostras consecutivas, a qual é seguidamente utilizada por este monitor para determinar estados críticos ou bons.

Configuração

Pode utilizar substituições para personalizar os seguintes parâmetros e alterar o comportamento predefinido deste monitor:

Este monitor está desativado por predefinição para todos os servidores de gestão.

Causas

Uma utilização excessiva da CPU pelos diversos processos de agente do Operations Manager pode indicar que o agente ou uma das respetivas dependências subjacentes não está a funcionar corretamente. Se o agente e respetivas dependências subjacentes forem atualizados corretamente, significa que o agente está a ser sobreutilizado no sistema monitorizado. Pode tratar-se de uma situação de curta duração causada por uma atualização recente no grupo de gestão em que, por exemplo, tenha sido implementado um novo pacote de gestão, ou de uma sobrecarga efetiva do agente, caso em que pode ser necessário realizar ajustes.

Resoluções

Para garantir que o agente e as respetivas dependências subjacentes estão a funcionar corretamente, verifique o seguinte:

Se a situação se mantiver depois de estas configurações serem verificadas, é necessário realizar uma investigação mais aprofundada para compreender o que está a ocasionar a utilização da CPU. Prossiga com as investigações, utilizando qualquer combinação dos seguintes passos:

Uma vez identificadas as causas, pode ser executado qualquer um dos procedimentos seguintes para resolver o problema:

Se nenhum dos passos acima solucionar o problema, contacte o Suporte e Atendimento ao Cliente Microsoft (http://support.microsoft.com/).

Adicional

Este monitor possui uma tarefa de diagnóstico relacionada, "Diagnóstico de utilização de processador por agente de recolha", que volta a executar a amostragem da utilização da CPU. A tarefa de diagnóstico está desativada por predefinição.

Existe igualmente, na Consola de operações, uma tarefa "Obter utilização de processador por agente", que volta a executar a amostragem da utilização da CPU. Ao executar a tarefa "Obter utilização de processador por agente", é possível definir os parâmetros de tempo limite e de número de amostras. A tarefa devolve uma tabela de resultados. Execute a tarefa "Obter utilização de processador por agente"

Element properties:

TargetMicrosoft.SystemCenter.HealthService
Parent MonitorMicrosoft.SystemCenter.HealthService.PerformanceHealthRollup
CategoryCustom
EnabledTrue
Alert GenerateTrue
Alert SeverityError
Alert PriorityNormal
Alert Auto ResolveTrue
Monitor TypeMicrosoft.SystemCenter.HealthService.SCOMpercentageCPUTimeCounterMonitorType
RemotableFalse
AccessibilityPublic
Alert Message
Os processos de agente do Operations Manager estão a utilizar demasiado tempo do processador
A utilização total do processador no computador {0} de todos os processos de agente excedeu o limiar de {1} em várias amostras.
RunAsDefault

Source Code:

<UnitMonitor ID="Microsoft.SystemCenter.HealthService.SCOMpercentageCPUTimeMonitor" Accessibility="Public" Enabled="onEssentialMonitoring" Target="SCLibrary!Microsoft.SystemCenter.HealthService" ParentMonitorID="Microsoft.SystemCenter.HealthService.PerformanceHealthRollup" Remotable="false" Priority="Normal" TypeID="Microsoft.SystemCenter.HealthService.SCOMpercentageCPUTimeCounterMonitorType" ConfirmDelivery="true">
<Category>Custom</Category>
<AlertSettings AlertMessage="Microsoft.SystemCenter.HealthService.SCOMpercentageCPUTimeMonitor.AlertMessage">
<AlertOnState>Error</AlertOnState>
<AutoResolve>true</AutoResolve>
<AlertPriority>Normal</AlertPriority>
<AlertSeverity>Error</AlertSeverity>
<AlertParameters>
<AlertParameter1>$Target/Host/Property[Type="Windows!Microsoft.Windows.Computer"]/PrincipalName$</AlertParameter1>
<AlertParameter2>$Data/Context/SampleValue$</AlertParameter2>
</AlertParameters>
</AlertSettings>
<OperationalStates>
<OperationalState ID="CPUTimeOverThreshold" MonitorTypeStateID="OverThreshold" HealthState="Error"/>
<OperationalState ID="CPUTimeUnderThreshold" MonitorTypeStateID="UnderThreshold" HealthState="Success"/>
</OperationalStates>
<Configuration>
<IntervalSeconds>321</IntervalSeconds>
<TimeoutSeconds>300</TimeoutSeconds>
<SyncTime>00:00</SyncTime>
<ComputerName>$Target/Host/Property[Type="Windows!Microsoft.Windows.Computer"]/PrincipalName$</ComputerName>
<Threshold>25</Threshold>
<ConsecutiveSampleCountCritical>6</ConsecutiveSampleCountCritical>
<ConsecutiveSampleCountHealthy>3</ConsecutiveSampleCountHealthy>
</Configuration>
</UnitMonitor>