Limite de Bytes Particulares do Host de Monitoramento

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

Esse monitor garante que o contador “Processo\Bytes Particulares" para o processo MonitoringHost.exe não exceda um limite definido ao longo de uma série de amostras consecutivas. Se as condições forem satisfeitas, esse monitor mudará para um estado crítico, que então será acumulado no monitor "Estado do Serviço de Integridade". O monitor "Estado do Serviço de Integridade" está configurado para executar uma recuperação quando seu estado é crítico, resultando em uma tentativa automática de reiniciar o serviço de Integridade.

Knowledge Base article:

Resumo

Esta regra mede a utilização do Processo\Bytes Particulares 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 Bytes Particulares

Agente

300 MB

Servidor de Gerenciamento

1.500 MB

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 é:

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 porque o serviço de Integridade está executando 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.

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. Muitas regras ou monitores configurados dessa forma fazem com que o processo de monitoramento host.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
CategoryPerformanceHealth
EnabledTrue
Alert GenerateFalse
Alert Auto ResolveTrue
Monitor TypeMicrosoft.SystemCenter.Agent.Performance.ConsecutiveSamplesThreshold.MonitorType
RemotableFalse
AccessibilityPublic
RunAsDefault

Source Code:

<UnitMonitor ID="Microsoft.SystemCenter.Agent.MonitoringHost.PrivateBytesThreshold" Accessibility="Public" Enabled="true" Target="SCLibrary!Microsoft.SystemCenter.Agent" ParentMonitorID="Microsoft.SystemCenter.HealthService.ServiceStateRollup" Remotable="false" Priority="High" TypeID="Microsoft.SystemCenter.Agent.Performance.ConsecutiveSamplesThreshold.MonitorType" ConfirmDelivery="false">
<Category>PerformanceHealth</Category>
<OperationalStates>
<OperationalState ID="PrivateBytesUnderThreshold" MonitorTypeStateID="UnderThreshold" HealthState="Success"/>
<OperationalState ID="PrivateBytesOverThreshold" MonitorTypeStateID="OverThreshold" HealthState="Error"/>
</OperationalStates>
<Configuration>
<ComputerName>$Target/Host/Property[Type="Windows!Microsoft.Windows.Computer"]/PrincipalName$</ComputerName>
<ObjectName>Process</ObjectName>
<CounterName>Private Bytes</CounterName>
<InstanceName>MonitoringHost*</InstanceName>
<AllInstances>false</AllInstances>
<Frequency>120</Frequency>
<NumSamples>5</NumSamples>
<Threshold>314572800</Threshold>
<Direction>greater</Direction>
</Configuration>
</UnitMonitor>