Soglia numero handle MonitoringHost

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

Questo monitoraggio assicura che il contatore "processo\numero handle" per i processi MonitoringHost.exe non superi la soglia impostata per una serie di campioni consecutivi. Se le condizioni vengono soddisfatte, questo monitoraggio si modificherà in uno stato critico che eseguirà quindi il rollup al monitoraggio "Stato Servizio integrità". Il monitoraggio "Stato Servizio integrità" è configurato affinché, quando il proprio stato è critico, esegua un ripristino che tenterà automaticamente di riavviare il servizio integrità.

Knowledge Base article:

Riepilogo

Questa regola misura l'utilizzo del processo\numero handle per tutte le istanze del processo MonitoringHost.exe. Se il valore supera la soglia configurata, un processo di risposta tenta di riavviare il servizio integrità per impedire il sovraccarico del computer.

Esistono diverse soglie in base al ruolo configurato per essere eseguito dal servizio integrità. Di seguito vengono riepilogate le soglie predefinite:

Ruolo del servizio integrità

Soglia del numero handle

Agente

6,000

Server di gestione

10,000

Di seguito viene visualizzata la configurazione del processo di risposta che tenta di riavviare il servizio integrità:

Ruolo del servizio integrità

Comportamento della risposta di riavvio

Agente

Attivata

Server di gestione

Nessuna risposta di riavvio

Cause

Un breve riepilogo delle potenziali cause:

Troppe regole e monitoraggi da tutti i Management Pack con i quali è stato configurato il servizio integrità.

La configurazione non corretta di una regola o di un monitoraggio che raccoglie o elabora troppi dati (ad esempio, la regola di raccolta per il contatore delle prestazioni che esegue la raccolta di dati ogni secondo)

La causa può essere l'esecuzione di troppi Management Pack con il servizio integrità. Ciascun Management Pack potrebbe avere più monitoraggi che utilizzano una piccola quantità di risorse. Con molti Management Pack che aggiungono diverse migliaia di regole e monitoraggi, ogni istanza di MonitoringHost.exe potrebbe utilizzare più risorse.

Questo comportamento del servizio integrità può verificarsi a seconda del tipo di monitoraggio eseguito dal servizio integrità.

Un'altra causa potrebbe essere individuata nella non conformità di una o più regole e monitoraggi alle procedure consigliate. Ad esempio, ciò avviene quando una regola del contatore delle prestazioni tenta di raccogliere dati sulle prestazioni ogni secondo. Troppe regole o monitoraggi configurati in questo modo possono causare l'utilizzo di troppe risorse da parte del processo di monitoraggio host.exe.

Soluzioni

L'azione predefinita per la regola eseguita su agenti è il riavvio del servizio integrità. Poiché il ripristino è attivato per impostazione predefinita sugli agenti, non è richiesto l'intervento dell'utente.

Notare che il servizio integrità potrebbe non essere riavviato correttamente se l'account azione con cui è stato configurato questo agente non ha le autorizzazioni appropriate per riavviare il servizio.

In tal caso, avviare il servizio Windows HealthService.

Se si ritiene che l'utilizzo della risorsa sia appropriato per la quantità di monitoraggio eseguita da questo agente, è possibile sostituire la soglia o disattivare la regola.

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.HandleCountThreshold" 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="HandleCountUnderThreshold" MonitorTypeStateID="UnderThreshold" HealthState="Success"/>
<OperationalState ID="HandleCountOverThreshold" MonitorTypeStateID="OverThreshold" HealthState="Error"/>
</OperationalStates>
<Configuration>
<ComputerName>$Target/Host/Property[Type="Windows!Microsoft.Windows.Computer"]/PrincipalName$</ComputerName>
<ObjectName>Process</ObjectName>
<CounterName>Handle Count</CounterName>
<InstanceName>MonitoringHost*</InstanceName>
<AllInstances>false</AllInstances>
<Frequency>120</Frequency>
<NumSamples>5</NumSamples>
<Threshold>6000</Threshold>
<Direction>greater</Direction>
</Configuration>
</UnitMonitor>