Monitor and baseline the "\% Processor Time" counter for the MSMQ process and alert if the value is larger than normal.
The amount of private bytes used by MSMQ is larger than baseline values and should be investigated.
If the % processor time levels out or falls back below the baseline then the issue may be due to an intermittent spike in activity.
If the processor utilization for the MQSVC process continues to increase then determine whether there is a corresponding increase in message volume or message size that which would in turn require more processor time.
If no other issues are found then consider restarting the service to reset the processor usage. If the issue reoccurs then further debugging may be required to investigate the source of the processor use.
Target | Microsoft.MSMQ.2008R2.Servers | ||
Parent Monitor | System.Health.PerformanceState | ||
Category | Custom | ||
Enabled | True | ||
Alert Generate | True | ||
Alert Severity | Error | ||
Alert Priority | Normal | ||
Alert Auto Resolve | True | ||
Monitor Type | System.Performance.TwoStateAboveBaseliningMonitorWithoutCompression | ||
Remotable | True | ||
Accessibility | Public | ||
Alert Message |
| ||
RunAs | Default |
<UnitMonitor ID="Microsoft.MSMQ.2008R2.Monitor.Processor.Baseline" Accessibility="Public" Enabled="true" Target="Microsoft.MSMQ.2008R2.Servers" ParentMonitorID="SystemHealth!System.Health.PerformanceState" Remotable="true" Priority="Normal" TypeID="SystemPerf!System.Performance.TwoStateAboveBaseliningMonitorWithoutCompression" ConfirmDelivery="false">
<Category>Custom</Category>
<AlertSettings AlertMessage="Microsoft.MSMQ.2008R2.Monitor.Processor.Baseline_AlertMessageResourceID">
<AlertOnState>Error</AlertOnState>
<AutoResolve>true</AutoResolve>
<AlertPriority>Normal</AlertPriority>
<AlertSeverity>Error</AlertSeverity>
</AlertSettings>
<OperationalStates>
<OperationalState ID="Healthy" MonitorTypeStateID="Below" HealthState="Success"/>
<OperationalState ID="ExcessiveUsage" MonitorTypeStateID="Above" HealthState="Error"/>
</OperationalStates>
<Configuration>
<SignatureID>Microsoft.MSMQ.2008R2.Monitor.Processor.Signature</SignatureID>
<DataSourceSettings>
<ComputerName>$Target/Host/Property[Type="Windows!Microsoft.Windows.Computer"]/NetworkName$</ComputerName>
<ObjectName>Process</ObjectName>
<CounterName>% Processor Time</CounterName>
<InstanceName>mqsvc</InstanceName>
<AllInstances>false</AllInstances>
<Frequency>900</Frequency>
</DataSourceSettings>
<LearningAndBaseliningSettings>
<BusinessCycleLengthUnit>Week</BusinessCycleLengthUnit>
<BusinessCycleLengthInGivenUnit>1</BusinessCycleLengthInGivenUnit>
<LearningType>Continuous</LearningType>
<Offset1>1</Offset1>
<Offset2>1</Offset2>
<Offset3>1</Offset3>
<LearningRate>2</LearningRate>
<InitialNoAlertPeriodInBizCycles>1</InitialNoAlertPeriodInBizCycles>
<OuterSensitivity>3.31</OuterSensitivity>
<InnerSensitivity>2.81</InnerSensitivity>
</LearningAndBaseliningSettings>
<SignatureCollectionSettings>
<DBUpdatePeriodInSeconds>900</DBUpdatePeriodInSeconds>
</SignatureCollectionSettings>
</Configuration>
</UnitMonitor>