SSAS 인스턴스의 쿼리 풀 큐 크기가 구성된 임계값을 초과하는 경우 모니터가 알림을 제공합니다.
쿼리 풀 작업 큐 크기가 구성된 임계값을 초과하는 경우 모니터가 알림을 제공합니다. 작업 자체는 빠르게 실행하여 반환할 수 있는 경우라도 큐는 풀에서 사용 가능한 스레드를 기다리느라 일부 요청이 실행될 수 없음을 나타낼 수 있습니다.
풀에 영향을 미칠 수 있는 서버 설정을 잘못 구성하거나 인스턴스에서 사용자 또는 예약 작업의 수요가 비정상적으로 높은 경우와 같이 여러 가지 이유로 쿼리 풀의 사용 가능한 스레드가 소모될 수 있습니다.
이 알림을 해결하려면 관리자가 작업 요구 사항, 사용자 및 작업 일정, 서버 컴퓨터의 다른 예약 프로세스, 사용 가능한 리소스 등(이러한 요인으로 제한되지 않음) 여러 요인을 이해하고 고려해야 합니다. 쿼리 풀 작업 큐 길이가 구성된 임계값을 초과하는 경우 이러한 상태를 수정할 조치는 다음과 같습니다.
SSAS 다차원 성능 가이드를 참조한 후 풀 구성 설정을 수정하여 쿼리 풀에서 사용 가능한 스레드를 늘립니다. 매우 신중한 고려와 테스트, Microsoft 지원과의 상담을 통해서만 수행하는 것이 좋습니다.
작업을 다시 예약하거나 데이터베이스 디자인을 수정하거나 사용자 쿼리를 제한하거나 작업을 나눠 일부 작업을 다른 서버로 이동하는 방법으로 SSAS 인스턴스에서 작업을 줄입니다.
서버에서 사용 가능한 코어 수를 늘려 동적으로 풀 크기를 증가시키는 방법으로 풀에서 사용 가능한 스레드 수를 늘립니다.
이러한 상태가 발생하지 않도록 알림에 대해 구성된 임계값을 조정합니다.
서버에서 쿼리 풀 작업 큐가 별로 중요하지 않을 경우 모니터를 완전히 사용하지 않도록 설정합니다.
이름 | 설명 | 기본값 |
사용 | 워크플로를 사용하거나 사용하지 않도록 설정합니다. | 예 |
알림 생성 | 워크플로의 알림 생성 여부 정의 | 예 |
간격(초) | 워크플로를 실행하는 반복 시간 간격(초)입니다. | 900 |
샘플 수 | 임계값 위반 수가 최소 위반 수보다 크거나 같은 경우 상태가 변경됩니다. | 4 |
동기화 시간 | 24시간 형식으로 지정된 동기화 시간입니다. 생략될 수 있습니다. |
|
경고 임계값 | Analysis Services 성능 카운터가 임계값을 초과하는 경우 상태가 변경됩니다. | 0 |
시간 제한(초) | 워크플로를 닫고 실패로 표시하기 전에 워크플로를 실행할 수 있는 시간을 지정합니다. | 300 |
Target | Microsoft.SQLServer.2008.AnalysisServices.Instance | ||
Parent Monitor | System.Health.PerformanceState | ||
Category | PerformanceHealth | ||
Enabled | True | ||
Alert Generate | True | ||
Alert Severity | Warning | ||
Alert Priority | Normal | ||
Alert Auto Resolve | True | ||
Monitor Type | Microsoft.SQLServer.2008.AnalysisServices.MonitorType.PerformanceCounterThreads | ||
Remotable | True | ||
Accessibility | Public | ||
Alert Message |
| ||
RunAs | Default |
<UnitMonitor ID="Microsoft.SQLServer.2008.AnalysisServices.UnitMonitor.Instance.QueryPoolQueueLength" Accessibility="Public" Enabled="true" Remotable="true" Priority="Normal" Target="SQLAS!Microsoft.SQLServer.2008.AnalysisServices.Instance" TypeID="Microsoft.SQLServer.2008.AnalysisServices.MonitorType.PerformanceCounterThreads" ParentMonitorID="SystemHealth!System.Health.PerformanceState" ConfirmDelivery="false">
<Category>PerformanceHealth</Category>
<AlertSettings AlertMessage="Microsoft.SQLServer.2008.AnalysisServices.UnitMonitor.Instance.QueryPoolQueueLength.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>Query pool job queue length</PerformanceCounterName>
<CounterName>Query pool job queue length</CounterName>
<Threshold>0</Threshold>
<SampleCount>4</SampleCount>
<IntervalSeconds>900</IntervalSeconds>
<SyncTime/>
<TimeoutSeconds>300</TimeoutSeconds>
</Configuration>
</UnitMonitor>