Monitora il contatore "Byte privati" per il processo MSMQ e avvisa se il valore è superiore alla soglia.
La quantità di byte privati utilizzati da MSMQ è maggiore rispetto ai valori di base, e deve essere analizzata.
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.
Target | Microsoft.MSMQ.10.0.Servers | ||
Parent Monitor | System.Health.PerformanceState | ||
Category | Custom | ||
Enabled | True | ||
Instance Name | Process | ||
Counter Name | Private Bytes | ||
Frequency | 900 | ||
Alert Generate | True | ||
Alert Severity | Error | ||
Alert Priority | Normal | ||
Alert Auto Resolve | True | ||
Monitor Type | System.Performance.ConsecutiveSamplesThreshold | ||
Remotable | True | ||
Accessibility | Public | ||
Alert Message |
| ||
RunAs | Default |
<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>