Processor

Microsoft.MSMQ.2008R2.Monitor.Processor.Baseline (UnitMonitor)

Monitor and baseline the "\% Processor Time" counter for the MSMQ process and alert if the value is larger than normal.

Knowledge Base article:

Summary

The amount of private bytes used by MSMQ is larger than baseline values and should be investigated.

Resolutions

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.

Element properties:

TargetMicrosoft.MSMQ.2008R2.Servers
Parent MonitorSystem.Health.PerformanceState
CategoryCustom
EnabledTrue
Alert GenerateTrue
Alert SeverityError
Alert PriorityNormal
Alert Auto ResolveTrue
Monitor TypeSystem.Performance.TwoStateAboveBaseliningMonitorWithoutCompression
RemotableTrue
AccessibilityPublic
Alert Message
Processor
Please see the alert context for details.
RunAsDefault

Source Code:

<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>