Monitor de Utilização de Memória WMI

Microsoft.SystemCenter.WMIPrivateBytes.Monitor (UnitMonitor)

Este monitor verifica a utilização da memória WMI no computador.

Knowledge Base article:

Resumo

O serviço WMI neste computador está a utilizar demasiada memória.

Este monitor verifica periodicamente a utilização total de memória do WMI no computador ao verificar o contador de Bytes Privados para todas as instâncias de processo começadas por WmiPrv e comparando essa verificação com 2 limiares. Por predefinição, este monitor entra num Estado de aviso se qualquer processo relacionado com o WMI consumir mais do que 500 MB de memória. Entra em estado de erro se qualquer processo relacionado com o WMI consumir mais de 600 MB de memória.

Causas

Uma causa possível é uma fuga de memória WMI, fazendo com que o WMI consuma mais memória ao longo do tempo.

Resoluções

Caso se observe um padrão de problemas de memória de WMI, este monitor possui uma recuperação desativada que reinicia automaticamente a WMI ao ser excedido o limiar de avisos ou erros. Se constatar que este procedimento resolve o problema, pode ativar uma dessas recuperações.

Externo

Para mais informações sobre como resolver problemas de WMI, aceda a http://go.microsoft.com/fwlink/?LinkId=158224.

Também pode transferir o Utilitário de Diagnóstico de WMI em http://go.microsoft.com/fwlink/?LinkId=158226. O Utilitário de Diagnóstico de WMI é um script de VBScript concebido para ajudar a resolver problemas relacionados com o serviço WMI num computador.

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
Utilização da memória WMI alta

A utilização da memória WMI é demasiado elevada Instância {0} Objeto {1} Contador {2} Tem um valor {3} No computador {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>