Schwellenwert für Handleanzahl des überwachenden Hosts

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

Dieser Monitor prüft, ob die durchschnittliche Verarbeitungs-\Handleanzahl für den Prozess "MonitoringHost.exe" über den konfigurierten Schwellenwert hinausgeht. Wenn der Schwellenwert erreicht ist, wird automatisch die Wiederherstellung für den Neustart des Integritätsdiensts ausgelöst.

Knowledge Base article:

Zusammenfassung

Diese Regel misst die Nutzung der Verarbeitungs-\Handleanzahl für alle Instanzen des Prozesses "MonitoringHost.exe". Wenn er den konfigurierten Schwellenwert überschreitet, wird in einem Reaktionsversuch der Integritätsdienst erneut gestartet, damit der Computer nicht überlastet bleibt.

Es gibt verschiedene Schwellenwerte, je nach der Rolle, für die der Integritätsdienst konfiguriert ist. Im Folgenden sind die Standardschwellenwerte zusammengefasst:

Integritätsdienst-Rolle

Schwellenwert für Handleanzahl

Agent

2,000

Verwaltungsserver

10,000

Unten steht die Konfiguration für die Antwort, die versucht, den Integritätsdienst neu zu starten:

Integritätsdienstrolle

Neustart-Antwortverhalten

Agent

Aktiviert

Verwaltungsserver

Keine Neustartantwort

Ursachen

Potenzielle Ursachen sind, kurz zusammengefasst:

Zu viele Regeln und Monitore sind von sämtlichen Management Packs geladen, mit denen dieser Health Service konfiguriert worden ist.

Eine fehlerhaft konfigurierte Regel oder ein Monitor, der zu viele Daten sammelt oder verarbeitet (z. B. Leistungsindikator-Sammlungsregel, die jede Sekunde Daten erfasst)

Dies kann dadurch zustande kommen, dass der Integritätsdienst viele Management Packs ausführt. Jedes Management Pack kann viel Überwachung haben, die eine kleine Menge an Ressourcen beansprucht. Bei vielen Management Packs ergeben sich viele Tausende Regeln und Monitore, so dass der jede Instanz von "MonitoringHost.exe" beginnen kann, mehr Ressourcen zu belegen.

Das ist für diesen Integritätsdienst je nach Art der Überwachung, die er ausführt, zu erwarten.

Eine weitere Ursache könnten eine oder mehrere Regeln und Überwachungen sein, die mit einigen der Best Practices nicht übereinstimmen. Ein Beispiel ist eine Leistungsindikatorregel, die versucht, einmal pro Sekunde Leistungsdaten zu erfassen. Bei zu vielen auf diese Art konfigurierten Regeln oder Monitoren beansprucht der Prozess "MonitoringHost.exe" mehr Ressourcen.

Lösungen

Die Standardaktion für diese auf Agenten ausgeführten Regel ist ein Neustart des Integritätsdienstes. Da diese Wiederherstellung standardmäßig auf Agenten aktiviert ist, ist keine Benutzeraktion erforderlich.

Beachten Sie, dass der Integritätsdienst eventuell nicht korrekt neu startet, wenn das Aktionskonto, mit dem dieser Agent konfiguriert worden ist, nicht die Berechtigungen für einen Neustart des Dienstes hat.

Wenn das der Fall ist, starten Sie den Windows-Dienst für den Integritätsdienst.

Wenn Sie den Eindruck haben, dass die Ressourcenverwendung für das Ausmaß der Überwachung durch diesen Agenten angemessen ist, können Sie den Schwellenwert außer Kraft setzen oder die Regel deaktivieren.

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>