Processing Pool Job Queue length

Microsoft.SQLServer.2008.AnalysisServices.UnitMonitor.Instance.ProcessingPoolJobQueueLength (UnitMonitor)

The monitor alerts when the length of the processing pool job queue for the SSAS instance is greater than the configured threshold.

Knowledge Base article:

Summary

The monitor alerts when the size of the processing pool job queue exceeds the configured threshold. Queuing can indicate that some requests may not be executed due to waiting for a free thread from the pool, even though the jobs might of themselves execute quickly and return.

Causes

Exhaustion of the available threads from the processing pool can occur for a number of reasons including misconfiguration of the server’s settings affecting the pool or abnormally high demand by users or scheduled jobs on the instance. Threads to execute user queries as well as processing jobs are all allocated from the processing pool so heavy workload can add stress leading to this condition.

Resolutions

Resolving this alert requires administrators to understand and consider numerous factors including but not limited to workload requirements, user and job schedules, other scheduled processes on the server computer, and resources available. Actions to remediate the condition when the size of the processing pool job queue exceeds the configured threshold may include any of the following actions:

External

Configure Server Properties in Analysis Services

SSAS Multidimensional Performance Guide

Element properties:

TargetMicrosoft.SQLServer.2008.AnalysisServices.Instance
Parent MonitorSystem.Health.PerformanceState
CategoryPerformanceHealth
EnabledTrue
Alert GenerateTrue
Alert SeverityWarning
Alert PriorityNormal
Alert Auto ResolveTrue
Monitor TypeMicrosoft.SQLServer.2008.AnalysisServices.MonitorType.PerformanceCounterThreads
RemotableTrue
AccessibilityPublic
Alert Message
SSAS 2008: Processing Pool Job Queue length exceeded.
The processing pool job queue length for the SSAS instance {1} on computer {0} exceeds the configured threshold.

Current Job Queue Length: {2}
RunAsDefault

Source Code:

<UnitMonitor ID="Microsoft.SQLServer.2008.AnalysisServices.UnitMonitor.Instance.ProcessingPoolJobQueueLength" Accessibility="Public" Enabled="true" Target="SQLAS!Microsoft.SQLServer.2008.AnalysisServices.Instance" ParentMonitorID="SystemHealth!System.Health.PerformanceState" Remotable="true" Priority="Normal" TypeID="Microsoft.SQLServer.2008.AnalysisServices.MonitorType.PerformanceCounterThreads" ConfirmDelivery="false">
<Category>PerformanceHealth</Category>
<AlertSettings AlertMessage="Microsoft.SQLServer.2008.AnalysisServices.UnitMonitor.Instance.ProcessingPoolJobQueueLength.AlertMessage">
<AlertOnState>Warning</AlertOnState>
<AutoResolve>true</AutoResolve>
<AlertPriority>Normal</AlertPriority>
<AlertSeverity>Warning</AlertSeverity>
<AlertParameters>
<AlertParameter1>$Target/Host/Property[Type="Windows!Microsoft.Windows.Computer"]/NetworkName$</AlertParameter1>
<AlertParameter2>$Target/Property[Type="SQLAS!Microsoft.SQLServer.2008.AnalysisServices.ServerRole"]/InstanceName$</AlertParameter2>
<AlertParameter3>$Data/Context/Value$</AlertParameter3>
</AlertParameters>
</AlertSettings>
<OperationalStates>
<OperationalState ID="Success" MonitorTypeStateID="Healthy" HealthState="Success"/>
<OperationalState ID="Warning" MonitorTypeStateID="Warning" HealthState="Warning"/>
</OperationalStates>
<Configuration>
<PerformanceCounterName>Processing pool job queue length</PerformanceCounterName>
<CounterName>Processing pool job queue length</CounterName>
<Threshold>0</Threshold>
<SampleCount>4</SampleCount>
<IntervalSeconds>900</IntervalSeconds>
<SyncTime/>
</Configuration>
</UnitMonitor>