Monitor de todos os processos de agente para identificar potenciais problemas com o agente utilizando demasiado tempo do processador.
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.
Pode utilizar substituições para personalizar os seguintes parâmetros e alterar o comportamento predefinido deste monitor:
Frequência (segundos). Esta é a frequência com a qual o monitor obtém amostras da utilização do processador pelos agentes. Por predefinição, o intervalo entre avaliações da utilização do processador pelos agentes é de 300 segundos (5 minutos).
Número de amostras consecutivas para o estado crítico. Por predefinição, este monitor comunica um estado crítico quando 6 amostras consecutivas excedem o limiar especificado.
Número de amostras consecutivas para bom estado de funcionamento. Por predefinição, este monitor devolve um bom estado de funcionamento quando 3 amostras consecutivas se situam abaixo do limiar especificado.
Limiar Por predefinição, o limiar de utilização da CPU é de 25%.
Este monitor está desativado por predefinição para todos os servidores de gestão.
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.
Para garantir que o agente e as respetivas dependências subjacentes estão a funcionar corretamente, verifique o seguinte:
Verifique se a versão do agente do Operations Manager que está instalada no sistema é a mais recente.
Verifique se está instalada a atualização do MSXML 6.0 fornecida Artigo 968967 da Base de Dados de Conhecimento (http://go.microsoft.com/fwlink/?LinkId=181885).
Se o sistema operativo do computador for o Windows XP, Windows 2000 Server ou Windows Server 2003, certifique-se de que está a ser executado o Windows Script Host 5.7 ou posterior no sistema. A hiperligação que se segue indica as localizações a partir das quais o Windows Script Host 5.7 pode ser transferido http://go.microsoft.com/fwlink/?LinkId=181884.
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:
Reveja o histórico recente de utilização do processador pelos agentes, bem como a contagem de fluxos de trabalho e a contagem de módulos, utilizando a vista seguinte: Vista Desempenho de Agentes. Os dados de utilização do processador pelos agentes permitem determinar se a situação é recente ou está a ocorrer há mais tempo. Os dados de contagem de fluxos de trabalho e de módulos fornecem uma indicação da carga de trabalho que os diversos monitores, regras e deteções estão a ocasionar no agente. Estes dados também devem ser confrontados com os de agentes em bom estado de funcionamento para comparação.
Utilize uma ferramenta como o Effective Configuration Viewer (http://go.microsoft.com/fwlink/?LinkId=182300) para determinar o número de instâncias de classe detetadas no agente. Um grande número de instâncias de classe pode resultar em contagens mais elevadas de fluxos de trabalho e de módulos, ocasionando uma maior carga de trabalho.
Utilizando o Monitor de Desempenho, recolha medições mais detalhadas de % de Tempo do Processador relativamente ao objeto do Processo. Tal permitirá identificar os processos que mais estão a contribuir para a utilização geral do processador.
Reveja quaisquer atualizações ou alterações recentes de pacotes de gestão para determinar se correspondem ao aumento da utilização da CPU.
Uma vez identificadas as causas, pode ser executado qualquer um dos procedimentos seguintes para resolver o problema:
No caso de uma alteração ou implementação recente de um pacote de gestão, monitorize a situação para determinar se o problema se mantém.
Reduza a frequência de deteção através de substituições, para distribuir a utilização da CPU pelo dia todo. Fazer isto tem como inconveniente a possibilidade de a deteção ser mais lenta.
Reduza a frequência dos monitores ou regras que são executados numa agenda, para distribuir, por todo o dia, a utilização que os mesmos fazem da CPU. Fazer isto tem como inconveniente uma diminuição da eficácia da monitorização.
Se o agente for gerido por vários grupos de gestão (uma configuração denominada "multihomed"), tal também irá contribuir para uma maior utilização do processador. Considere a possibilidade de reduzir o número de grupos de gestão pelos quais o agente é gerido.
Se nenhum dos passos acima solucionar o problema, contacte o Suporte e Atendimento ao Cliente Microsoft (http://support.microsoft.com/).
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"
Target | Microsoft.SystemCenter.HealthService | ||
Parent Monitor | Microsoft.SystemCenter.HealthService.PerformanceHealthRollup | ||
Category | Custom | ||
Enabled | True | ||
Alert Generate | True | ||
Alert Severity | Error | ||
Alert Priority | Normal | ||
Alert Auto Resolve | True | ||
Monitor Type | Microsoft.SystemCenter.HealthService.SCOMpercentageCPUTimeCounterMonitorType | ||
Remotable | False | ||
Accessibility | Public | ||
Alert Message |
| ||
RunAs | Default |
<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/>
<ComputerName>$Target/Host/Property[Type="Windows!Microsoft.Windows.Computer"]/PrincipalName$</ComputerName>
<Threshold>25</Threshold>
<ConsecutiveSampleCountCritical>6</ConsecutiveSampleCountCritical>
<ConsecutiveSampleCountHealthy>3</ConsecutiveSampleCountHealthy>
</Configuration>
</UnitMonitor>