Handleanzahl für private Bytes von "MonitoringHost.exe"

Microsoft.SystemCenter.ManagementServer.MonitoringHost.PrivateBytesThreshold (Rule)

Hiermit wird der Integritätsdienst neu gestartet, wenn der Schwellenwert "Prozess\Private Bytes" vom Prozess "MonitoringHost.exe" überschritten wird.

Knowledge Base article:

Zusammenfassung

Mit dieser Regel wird die Verwendung der verarbeiteten\privaten Bytes für alle Instanzen des Prozesses "MonitoringHost.exe" gemessen. Überschreitet sie den konfigurierten Schwellenwert, wird eine Warnung erzeugt.

Es gibt verschiedene Schwellenwerte, je nachdem, für welche Rolle der Integritätsdienst konfiguriert wurde. Nachfolgend werden die Standardschwellenwerte zusammengefasst:

Integritätsdienstrolle

Schwellenwert für private Bytes

Agent

100 MB

Verwaltungsserver

1.500 MB

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

Im Folgenden finden Sie eine kurze Zusammenfassung der möglichen Ursachen:

Es werden zu viele Regeln und Monitore aus allen Management Packs geladen, mit denen dieser Integritätsdienst konfiguriert wurde.

Von einer falsch konfigurierten Regel oder Überwachung werden zu viele Daten erfasst oder verarbeitet (Beispiel: mit der Leistungsindikator-Sammlungsregel werden einmal pro Sekunde Daten erfasst)

Dies kann dadurch verursacht werden, dass vom Integritätsdienst zu viele Management Packs ausgeführt werden. Für jedes Management Pack können zahlreiche Überwachungen definiert sein, die eine geringe Anzahl von Ressourcen beanspruchen. Bei vielen Management Packs ergeben sich viele tausend Regeln und Monitore, so dass durch jede Instanz von "MonitoringHost.exe" mit der Zeit immer mehr Ressourcen belegt werden.

Je nach Art der vom Integritätsdienst ausgeführten Überwachung, kann dies auch bei diesem Integritätsdienst erwartet werden.

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 auf Verwaltungsservern durchgeführte Standardaktion für diese Regel ist eine Warnung.

Wenn die Ressourcenverwendung für den von diesem Agenten durchgeführten Überwachungsaufwand Ihrer Meinung nach angemessen ist, können Sie den Schwellenwert außer Kraft setzen oder die Wiederherstellung deaktivieren.

Nehmen der HealthService und der zugeordnete Prozess "MonitoringHost.exe" immer noch zu viele Ressourcen in Anspruch, können Sie den Windows-Dienst HealthService neu starten, um dieses Problem zu lindern.

Element properties:

TargetMicrosoft.SystemCenter.ManagementServer
CategoryMaintenance
EnabledFalse
Instance NameProcess
Counter NamePrivate Bytes
Frequency120
Alert GenerateTrue
Alert SeverityError
Alert PriorityNormal
RemotableTrue
Alert Message
Warnmeldung für den Schwellenwert der privaten Bytes für "MonitoringHost.exe" (Verwaltungsserver)
Warnmeldung für den Schwellenwert der privaten Bytes für "MonitoringHost.exe"

Member Modules:

ID Module Type TypeId RunAs 
DataSource DataSource System.Performance.DataProvider Default
CDAveragerThreshold ConditionDetection System.Performance.AverageThresholdCondition Default
Alert WriteAction System.Health.GenerateAlert Default

Source Code:

<Rule ID="Microsoft.SystemCenter.ManagementServer.MonitoringHost.PrivateBytesThreshold" Enabled="false" Target="SCLibrary!Microsoft.SystemCenter.ManagementServer" ConfirmDelivery="false" Remotable="true" Priority="High" DiscardLevel="100">
<Category>Maintenance</Category>
<DataSources>
<DataSource ID="DataSource" TypeID="Performance!System.Performance.DataProvider">
<CounterName>Private Bytes</CounterName>
<ObjectName>Process</ObjectName>
<InstanceName>MonitoringHost*</InstanceName>
<Frequency>120</Frequency>
</DataSource>
</DataSources>
<ConditionDetection ID="CDAveragerThreshold" TypeID="Performance!System.Performance.AverageThresholdCondition">
<NumSamples>5</NumSamples>
<Threshold>1610612736</Threshold>
<Operator>Greater</Operator>
</ConditionDetection>
<WriteActions>
<WriteAction ID="Alert" TypeID="Health!System.Health.GenerateAlert">
<Priority>1</Priority>
<Severity>2</Severity>
<AlertName/>
<AlertDescription/>
<AlertOwner/>
<AlertMessageId>$MPElement[Name="Microsoft.SystemCenter.ManagementServer.MonitoringHost.PrivateBytesThreshold.AlertMessage"]$</AlertMessageId>
<AlertParameters>
<AlertParameter1>$Data/InstanceName$</AlertParameter1>
<AlertParameter2>$Data/Value$</AlertParameter2>
</AlertParameters>
<Suppression>
<SuppressionValue>$Target/Host/Property[Type="Windows!Microsoft.Windows.Computer"]/PrincipalName$</SuppressionValue>
</Suppression>
</WriteAction>
</WriteActions>
</Rule>