Lunghezza coda processi nel pool di elaborazione

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

Il monitoraggio avvisa quando la lunghezza della coda processi nel pool di elaborazione per l'istanza di SSAS è superiore alla soglia configurata.

Knowledge Base article:

Riepilogo

Il monitoraggio avvisa quando le dimensioni della coda processi nel pool di elaborazione superano la soglia configurata. L'accodamento può indicare che alcune richieste non possono essere eseguite a causa dell'attesa di un thread disponibile nel pool anche se i processi potrebbero essere eseguiti e restituiti rapidamente.

Cause

L'esaurimento dei thread disponibili nel pool di elaborazione può verificarsi per diversi motivi, tra cui la configurazione non corretta delle impostazioni del server che influiscono sul pool o la richiesta eccessivamente elevata da parte degli utenti o dei processi pianificati nell'istanza. I thread per eseguire le query degli utenti oltre ai processi di elaborazione sono tutti allocati nel pool di elaborazione, pertanto un carico di lavoro eccessivo può generare un sovraccarico di lavoro causando tale condizione.

Soluzioni

Per risolvere questo avviso, è necessario che gli amministratori comprendano e valutino diversi fattori tra cui i requisiti del carico di lavoro, le pianificazioni di processi e utenti, gli altri processi pianificati sul computer server e le risorse disponibili. Per risolvere la condizione in cui le dimensioni della coda processi nel pool di elaborazione superano la soglia configurata, è possibile intraprendere una delle azioni seguenti:

Risorse esterne

Configurare le proprietà del server in Analysis Services

Documentazione TechNet per i contatori delle prestazioni di SSAS

Guida alle prestazioni multidimensionali di SSAS

Parametri di cui è possibile eseguire l'override

Nome

Descrizione

Valore predefinito

Abilitato

Abilita o disabilita il flusso di lavoro

Genera avvisi

Definisce se il flusso di lavoro genera un avviso

Intervallo (secondi)

Intervallo di tempo ricorrente in secondi in cui eseguire il flusso di lavoro.

900

Numero di campioni

Lo stato di integrità cambia se il numero di violazioni di soglia è superiore o uguale al numero minimo di violazioni.

4

Ora di sincronizzazione

Ora di sincronizzazione specificata usando il formato a 24 ore. Può essere omessa.

 

Soglia avviso

Lo stato di integrità cambia se il contatore delle prestazioni di Analysis Services supera la soglia.

0

Timeout (secondi)

Specifica il tempo di esecuzione consentito per il flusso di lavoro prima che venga chiuso e contrassegnato come non riuscito.

300

Element properties:

TargetMicrosoft.SQLServer.2016.AnalysisServices.Instance
Parent MonitorSystem.Health.PerformanceState
CategoryPerformanceHealth
EnabledTrue
Alert GenerateTrue
Alert SeverityWarning
Alert PriorityNormal
Alert Auto ResolveTrue
Monitor TypeMicrosoft.SQLServer.2016.AnalysisServices.MonitorType.Instance.CommonPerformanceData
RemotableTrue
AccessibilityPublic
Alert Message
SSAS 2016: lunghezza coda processi nel pool di elaborazione superata.
La lunghezza della coda processi nel pool di elaborazione per l'istanza di SSAS {1} nel computer {0} supera la soglia configurata.
Lunghezza coda processi corrente: {2}
RunAsDefault

Source Code:

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