Bellek Kullanımı

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

MSMQ işlemi için "Özel Bayt Sayısı" sayacını izleyin ve değer eşikten büyükse uyarı verin.

Knowledge Base article:

Özet

MSMQ tarafından kullanılan özel baytların miktarı taban çizgisi değerlerinden büyüktür ve araştırılması gerekir.

Çözümler

Özel bayt kullanımı taban çizgisine gelirse veya taban çizgisinin arkasında kalırsa, sorunun nedeni etkinlikteki aralıklı bir değişiklik olabilir.

MQSVC işlemi için özel bayt sayısı artmaya devam ederse, ileti hacmindeki veya ileti boyutunda bellek kullanımının da artırılmasını gerekecek bir artış olup olmadığını belirleyin.

Başka sorun bulunamazsa, bellek ayırmasını sıfırlamak için hizmeti yeniden başlatmayı düşünün. Sorun yeniden oluşursa, bellek kullanımının kaynağını araştırmak için hata ayıklama gerekebilir.

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
Bellek Kullanımı
Lütfen ayrıntılar için uyarı bağlamına bakın.
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>