Seuil du nombre de handles de MonitoringHost.exe (serveur d'administration)

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

Redémarre le service de contrôle d'intégrité lorsque le processus MonitoringHost.exe dépasse le seuil Processus\Nombre de handles.

Knowledge Base article:

Résumé

Cette règle mesure l'utilisation du Processus\Nombre de handles de toutes les instances du processus MonitoringHost.exe. En cas de dépassement du seuil de configuration, une alerte est générée.

Il existe trois seuils différents en fonction de la configuration du rôle du service de contrôle d'intégrité. Les seuils par défaut sont récapitulés ci-dessous :

Rôle du service de contrôle d'intégrité

Seuildu nombre de handles

Agent

2,000

Serveur d'administration

10,000

La configuration de la réponse qui tente de redémarrer le service de contrôle d'intégrité est indiquée ci-dessous :

Rôle du service de contrôle d'intégrité

Comportement de la réponse de redémarrage

Agent

Activé

Serveur d'administration

Aucune réponse de redémarrage

Causes

Voici un résumé des causes potentielles :

Le nombre de règles et d'analyses chargées à partir de tous les packs d'administration configurés sur ce service de contrôle d'intégrité est trop important.

Une règle ou une analyse mal configurée collecte ou traite un nombre trop important de données (par ex., la règle de collecte du compteur de performances collecte des données toutes les secondes).

Cette situation peut être due au fait que de nombreux packs d'administration sont exécutés par le service de contrôle d'intégrité. Chaque pack d'administration peut effectuer une multitude d'analyses qui utilisent peu de ressources. Lorsque les packs d'administration s'ajoutent en grand nombre à plusieurs milliers de règles et d'analyses, il se peut que chaque instance MonitoringHost.exe consomme davantage de ressources.

C'est peut-être le cas de ce service de contrôle d'intégrité, en fonction du type d'analyse effectuée par le service de contrôle d'intégrité.

Une autre cause possible : une ou plusieurs règles et analyses ne sont pas conformes à des pratiques recommandées. Par exemple, lorsqu'une règle de compteur de performances tente de collecter des données de performances toutes les secondes. Si un nombre excessif de règles et d'analyses sont configurées de cette façon, le processus MonitoringHost.exe consommera plus de ressources.

Solutions

L'action par défaut pour cette règle qui s'exécute sur les serveurs d'administration est la génération d'une alerte.

Si vous estimez que l'utilisation des ressources est appropriée pour le nombre d'analyses effectuées par cet agent, vous pouvez remplacer le seuil ou désactiver la récupération.

Si le service de contrôle d'intégrité et son processus MonitoringHost.exe associé continuent de consommer un trop grand nombre de ressources, vous pouvez redémarrer le service de contrôle d'intégrité de Windows pour réduire les risques liés à ce problème.

Element properties:

TargetMicrosoft.SystemCenter.ManagementServer
CategoryMaintenance
EnabledFalse
Instance NameProcess
Counter NameHandle Count
Frequency120
Alert GenerateTrue
Alert SeverityError
Alert PriorityNormal
RemotableTrue
Alert Message
Message d'alerte relatif au seuil du nombre de handles de MonitoringHost.exe (serveur d'administration)
Message d'alerte relatif au seuil du nombre de handles de 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.HandleCountThreshold" 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>Handle Count</CounterName>
<ObjectName>Process</ObjectName>
<InstanceName>MonitoringHost*</InstanceName>
<Frequency>120</Frequency>
</DataSource>
</DataSources>
<ConditionDetection ID="CDAveragerThreshold" TypeID="Performance!System.Performance.AverageThresholdCondition">
<NumSamples>5</NumSamples>
<Threshold>10000</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.HandleCountThreshold.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>