처리 중인 풀 작업 큐 길이

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

SSAS 인스턴스의 처리 중인 풀 작업 큐 길이가 구성된 임계값을 초과하는 경우 모니터가 알림을 제공합니다.

Knowledge Base article:

요약

처리 풀 작업 큐 크기가 구성된 임계값을 초과하는 경우 모니터가 알림을 제공합니다. 큐가 작업 자체는 빠르게 실행하여 반환할 수 있는 경우라도 풀에서 사용 가능한 스레드를 기다리느라 일부 요청이 실행될 수 없음을 나타낼 수 있습니다.

원인

풀에 영향을 미칠 수 있는 서버 설정을 잘못 구성하거나 인스턴스에서 사용자 또는 예약 작업의 수요가 비정상적으로 높은 경우와 같이 여러 가지 이유로 처리 풀의 사용 가능한 스레드가 소모될 수 있습니다. 사용자 쿼리 및 처리 작업을 실행할 스레드는 모두 처리 풀에서 할당되므로 많은 작업이 스트레스를 추가하여 이러한 상태가 발생할 수 있습니다.

해결 방법

이 알림을 해결하려면 관리자가 작업 요구 사항, 사용자 및 작업 일정, 서버 컴퓨터의 다른 예약 프로세스, 사용 가능한 리소스 등(이러한 요인으로 제한되지 않음) 여러 요인을 이해하고 고려해야 합니다. 처리 풀 작업 큐 크기가 구성된 임계값을 초과하는 경우 이러한 상태를 수정할 조치는 다음과 같습니다.

외부 리소스

Analysis Services 서버 속성 구성

SSAS 성능 카운터 TechNet 설명서

SSAS 다차원 성능 가이드

재정의 가능한 매개 변수

이름

설명

기본값

사용

워크플로를 사용하거나 사용하지 않도록 설정합니다.

알림 생성

워크플로의 알림 생성 여부 정의

간격(초)

워크플로를 실행하는 반복 시간 간격(초)입니다.

900

샘플 수

임계값 위반 수가 최소 위반 수보다 크거나 같은 경우 상태가 변경됩니다.

4

동기화 시간

24시간 형식으로 지정된 동기화 시간입니다. 생략될 수 있습니다.

 

경고 임계값

Analysis Services 성능 카운터가 임계값을 초과하는 경우 상태가 변경됩니다.

0

시간 제한(초)

워크플로를 닫고 실패로 표시하기 전에 워크플로를 실행할 수 있는 시간을 지정합니다.

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: 처리 중인 풀 작업 큐 길이가 초과되었습니다.
{0} 컴퓨터에서 SSAS 인스턴스 {1}의 처리 중인 풀 작업 큐 길이가 구성된 임계값을 초과합니다.
현재 작업 큐 길이: {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>