Utilizzo della memoria

Microsoft.MSMQ.10.0.Monitor.Memory (UnitMonitor)

Monitora il contatore "Byte privati" per il processo MSMQ e avvisa se il valore è superiore alla soglia.

Knowledge Base article:

Riepilogo

La quantità di byte privati utilizzati da MSMQ è maggiore rispetto ai valori di base, e deve essere analizzata.

Soluzioni

Se l'utilizzo di byte privati pareggia oppure scende al di sotto del valore di base, il problema può essere dovuto a un picco intermittente dell'attività.

Se i byte privati per il processo MQSVC continuano ad aumentare, determinare se vi è un aumento corrispondente nel volume di messaggi o nelle dimensioni dei messaggi, che a sua volta richiede un maggiore utilizzo di memoria.

Se non vengono rilevati altri problemi, considerare l'opzione di riavviare il servizio per ripristinare l'allocazione di memoria. Se il problema si presenta nuovamente, potrebbe essere necessario eseguire nuovamente il debug per indagare l'origine dell'utilizzo di memoria.

Element properties:

TargetMicrosoft.MSMQ.10.0.Servers
Parent MonitorSystem.Health.PerformanceState
CategoryCustom
EnabledTrue
Instance NameProcess
Counter NamePrivate Bytes
Frequency900
Alert GenerateTrue
Alert SeverityError
Alert PriorityNormal
Alert Auto ResolveTrue
Monitor TypeSystem.Performance.ConsecutiveSamplesThreshold
RemotableTrue
AccessibilityPublic
Alert Message
Utilizzo della memoria
Per i dettagli, vedere il contesto dell'avviso.
RunAsDefault

Source Code:

<UnitMonitor ID="Microsoft.MSMQ.10.0.Monitor.Memory" Accessibility="Public" Enabled="true" Target="Microsoft.MSMQ.10.0.Servers" ParentMonitorID="SystemHealth!System.Health.PerformanceState" Remotable="true" Priority="Normal" TypeID="SystemPerf!System.Performance.ConsecutiveSamplesThreshold" ConfirmDelivery="false">
<Category>Custom</Category>
<AlertSettings AlertMessage="Microsoft.MSMQ.10.0.Monitor.Memory.AlertMessageResourceID">
<AlertOnState>Error</AlertOnState>
<AutoResolve>true</AutoResolve>
<AlertPriority>Normal</AlertPriority>
<AlertSeverity>Error</AlertSeverity>
<AlertParameters/>
</AlertSettings>
<OperationalStates>
<OperationalState ID="UnderThreshold" MonitorTypeStateID="ConditionFalse" HealthState="Success"/>
<OperationalState ID="OverThreshold" MonitorTypeStateID="ConditionTrue" HealthState="Error"/>
</OperationalStates>
<Configuration>
<ComputerName>$Target/Host/Property[Type="Windows!Microsoft.Windows.Computer"]/NetworkName$</ComputerName>
<CounterName>Private Bytes</CounterName>
<ObjectName>Process</ObjectName>
<InstanceName>mqsvc</InstanceName>
<AllInstances>false</AllInstances>
<Frequency>900</Frequency>
<Threshold>104857600</Threshold>
<Direction>greater</Direction>
<NumSamples>3</NumSamples>
</Configuration>
</UnitMonitor>