Processing Pool Job Queue length

Microsoft.SQLServer.AnalysisServices.Windows.Monitoring.Monitor.Instance.ProcessingPoolJobQueueLength (UnitMonitor)

The monitor alerts, when the length of the processing pool job queue for 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 be executed and returned quickly.

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, a heavy workload can add a stress leading to this condition.

Resolutions

Resolving this alert requires the 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

TechNet documentation for SSAS Performance Counters

Overridable Parameters

Name

Description

Default Value

Enabled

Enables or disables the workflow

Yes

Generates Alerts

Defines whether the workflow generates an Alert

Yes

Interval Seconds

The recurring interval of time in seconds in which to run the workflow.

900

Number of samples

Health State changes, if the number of threshold breaches is greater than or equal to the Minimum Number of Breaches.

4

Synchronization Time

The synchronization time specified by using a 24-hour format. May be omitted.

 

Warning Threshold

Health State changes, if Analysis Services performance counter exceeds the threshold.

0

Timeout (seconds)

Specifies the time the workflow is allowed to run before being closed and marked as failed.

300

Element properties:

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

Source Code:

<UnitMonitor ID="Microsoft.SQLServer.AnalysisServices.Windows.Monitoring.Monitor.Instance.ProcessingPoolJobQueueLength" Target="SQLAS!Microsoft.SQLServer.AnalysisServices.Windows.Instance" ParentMonitorID="SystemHealth!System.Health.PerformanceState" TypeID="Microsoft.SQLServer.AnalysisServices.Windows.Monitoring.MonitorType.Instance.CommonPerformanceData" Accessibility="Public" Enabled="true" Remotable="true" Priority="Normal" ConfirmDelivery="false">
<Category>PerformanceHealth</Category>
<AlertSettings AlertMessage="Microsoft.SQLServer.AnalysisServices.Windows.Monitoring.Monitor.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="ASCore!Microsoft.SQLServer.AnalysisServices.Core.Instance"]/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/>
<TimeoutSeconds>300</TimeoutSeconds>
</Configuration>
</UnitMonitor>