Limite de Contagem de Identificadores do Host de Monitoramento

Microsoft.SystemCenter.Agent.MonitoringHost.HandleCountThreshold (UnitMonitor)

Esse monitor verifica se a contagem média do Processo\Contagem de Identificadores para o processo MonitoringHost.exe excede o limite configurado. Quando esse limite é atingido, uma Recuperação é automaticamente disparada para reiniciar o Serviço de Integridade.

Knowledge Base article:

Resumo

Esta regra mede a utilização do Processo\Contagem de Identificadores de todas as instâncias do processo MonitoringHost.exe. Se ele exceder o limite configurado, uma resposta tentará reiniciar o Serviço de Integridade para garantir que ele não continue a sobrecarregar o computador.

Existem limites diferentes dependendo da função que o Serviço de Integridade está configurado para executar. A seguir está o resumo dos limites padrão:

Função do Serviço de Integridade

Limite de Contagem de Identificadores

Agente

2,000

Servidor de Gerenciamento

10,000

A seguir está a configuração da resposta que tenta reiniciar o Serviço de Integridade:

Função do Serviço de Integridade

Reiniciar Comportamento da Resposta

Agente

Habilitado

Servidor de Gerenciamento

Sem resposta de reinicialização

Causas

Um resumo breve das causas potenciais são:

Regras e monitores em excesso são carregados de todos os pacotes de gerenciamento com os quais esse Serviço de Integridade foi configurado.

Uma configuração incorreta da regra ou do monitor que coleta ou processa dados em excesso (por exemplo, regra de coleta do contador de desempenho que coleta dados a cada segundo)

Isso pode ser provocado pelo Serviço de Integridade ao executar muitos pacotes de gerenciamento. Cada Pacote de Gerenciamento pode ter uma carga elevada de monitoramento que usa uma pequena quantidade de recursos. Com muitos pacotes de gerenciamento adicionados a milhares de regras e monitores, cada instância do MonitoringHost.exe pode começar a consumir mais recursos.

Isso pode ser esperado para esse Serviço de Integridade dependendo do tipo de monitoramento que ele executa.

Uma outra causa pode ser uma ou mais regras e monitores que não estão em conformidade com algumas práticas recomendadas. Um exemplo é uma regra do contador de desempenho que tenta coletar dados de desempenho a cada segundo. Regras ou monitores em excesso configurados dessa forma fazem com que o processo MonitoringHoste.exe consuma mais recursos.

Resoluções

A ação padrão para essa regra em execução nos agentes é reiniciar o Serviço de Integridade. Por padrão, como essa recuperação é habilitada nos agentes. Nenhuma ação do usuário é necessária.

Observe que o Serviço de Integridade poderá não ser reiniciado corretamente se a conta de ação com a qual esse agente foi configurado não possuir as permissões corretas para reiniciar o serviço.

Nesse caso, inicie o Serviço de Integridade do Windows.

Se você achar que a utilização do recurso é apropriada para o volume de monitoramento executado por esse agente, poderá substituir o limite ou desabilitar a regra.

Element properties:

TargetMicrosoft.SystemCenter.Agent
Parent MonitorMicrosoft.SystemCenter.HealthService.ServiceStateRollup
CategoryStateCollection
EnabledTrue
Alert GenerateFalse
Alert Auto ResolveFalse
Monitor TypeMicrosoft.SystemCenter.Agent.Performance.AveragerThresholdWithSingleSampleSuccessState
RemotableFalse
AccessibilityInternal
RunAsDefault

Source Code:

<UnitMonitor ID="Microsoft.SystemCenter.Agent.MonitoringHost.HandleCountThreshold" Accessibility="Internal" Enabled="true" Target="SCLibrary!Microsoft.SystemCenter.Agent" ParentMonitorID="Microsoft.SystemCenter.HealthService.ServiceStateRollup" Remotable="false" Priority="High" TypeID="Microsoft.SystemCenter.Agent.Performance.AveragerThresholdWithSingleSampleSuccessState" ConfirmDelivery="false">
<Category>StateCollection</Category>
<OperationalStates>
<OperationalState ID="HandleCountUnderThreshold" MonitorTypeStateID="UnderThreshold" HealthState="Success"/>
<OperationalState ID="HandleCountOverThreshold" MonitorTypeStateID="OverThreshold" HealthState="Error"/>
</OperationalStates>
<Configuration>
<ObjectName>Process</ObjectName>
<CounterName>Handle Count</CounterName>
<InstanceName>MonitoringHost*</InstanceName>
<Frequency>120</Frequency>
<NumSamples>5</NumSamples>
<Threshold>2000</Threshold>
</Configuration>
</UnitMonitor>