Analyse de l'utilisation de mémoire WMI

Microsoft.SystemCenter.WMIPrivateBytes.Monitor (UnitMonitor)

Cette analyse vérifie l'utilisation de la mémoire WMI sur l'ordinateur.

Knowledge Base article:

Résumé

Le service WMI sur cet ordinateur utilise trop de mémoire.

Cette analyse vérifie périodiquement l'utilisation totale de la mémoire de WMI sur l'ordinateur en vérifiant le compteur d'octets privés pour toutes les instances de processus commençant par WmiPrv et en les comparant avec 2 seuils. Par défaut, cette analyse passe dans un état d'avertissement si un processus lié à WMI consomme plus de 500 Mo de mémoire. Elle passe dans un état d'erreur si un processus lié à WMI consomme plus de 600 Mo de mémoire.

Causes

Il est possible qu'il s'agisse d'une fuite de mémoire WMI, ce qui entraîne WMI à consommer de plus en plus de mémoire dans le temps.

Résolutions

Si vous voyez une répétition de problèmes de mémoire WMI, cette analyse possède une récupération désactivée qui redémarre automatiquement WMI lorsque le seuil d'avertissement ou d'erreur est dépassé. Si vous voyez que cela résout le problème, vous pouvez activer l'une de ces récupérations.

Ressource externe

Pour plus d'informations sur la résolution des problèmes WMI, consultez la page http://go.microsoft.com/fwlink/?LinkId=158224.

Vous pouvez aussi télécharger l'utilitaire de diagnostic WMI à l'adresse http://go.microsoft.com/fwlink/?LinkId=158226. L'utilitaire de diagnostic WMI est un script VBScript qui vous permet de résoudre les problèmes liés au service WMI sur un ordinateur.

Element properties:

TargetMicrosoft.SystemCenter.Agent
Parent MonitorSystem.Health.PerformanceState
CategoryPerformanceHealth
EnabledFalse
Alert GenerateTrue
Alert SeverityWarning
Alert PriorityNormal
Alert Auto ResolveTrue
Monitor TypeMicrosoft.SystemCenter.Performance.FilteredDoubleThreshold.MonitorType
RemotableTrue
AccessibilityPublic
Alert Message
Utilisation élevée de la mémoire WMI

L'utilisation de la mémoire WMI est trop élevée. Instance {0} Objet {1} Compteur {2} Valeur {3} Ordinateur {4}
RunAsDefault

Source Code:

<UnitMonitor ID="Microsoft.SystemCenter.WMIPrivateBytes.Monitor" Accessibility="Public" Enabled="false" Target="SCLibrary!Microsoft.SystemCenter.Agent" ParentMonitorID="Health!System.Health.PerformanceState" Remotable="true" Priority="Normal" TypeID="Microsoft.SystemCenter.Performance.FilteredDoubleThreshold.MonitorType" ConfirmDelivery="false">
<Category>PerformanceHealth</Category>
<AlertSettings AlertMessage="Microsoft.SystemCenter.WMIPrivateBytes.Monitor.AlertMessage">
<AlertOnState>Error</AlertOnState>
<AutoResolve>true</AutoResolve>
<AlertPriority>Normal</AlertPriority>
<AlertSeverity>Warning</AlertSeverity>
<AlertParameters>
<AlertParameter1>$Data/Context/InstanceName$</AlertParameter1>
<AlertParameter2>$Data/Context/ObjectName$</AlertParameter2>
<AlertParameter3>$Data/Context/CounterName$</AlertParameter3>
<AlertParameter4>$Data/Context/Value$</AlertParameter4>
<AlertParameter5>$Target/Host/Property[Type="Windows!Microsoft.Windows.Computer"]/NetworkName$</AlertParameter5>
</AlertParameters>
</AlertSettings>
<OperationalStates>
<OperationalState ID="UnderThreshold1" MonitorTypeStateID="UnderThreshold1" HealthState="Success"/>
<OperationalState ID="OverThreshold1UnderThreshold2" MonitorTypeStateID="OverThreshold1UnderThreshold2" HealthState="Warning"/>
<OperationalState ID="OverThreshold2" MonitorTypeStateID="OverThreshold2" HealthState="Error"/>
</OperationalStates>
<Configuration>
<ComputerName>$Target/Host/Property[Type="Windows!Microsoft.Windows.Computer"]/NetworkName$</ComputerName>
<CounterName>Private Bytes</CounterName>
<ObjectName>Process</ObjectName>
<InstanceName/>
<AllInstances>true</AllInstances>
<Frequency>300</Frequency>
<Expression>
<RegExExpression>
<ValueExpression>
<XPathQuery Type="String">InstanceName</XPathQuery>
</ValueExpression>
<Operator>ContainsSubstring</Operator>
<Pattern>WmiPrv</Pattern>
</RegExExpression>
</Expression>
<Threshold1>524288000</Threshold1>
<Threshold2>629145600</Threshold2>
</Configuration>
</UnitMonitor>