このモニターは、SSAS インスタンスの処理プール ジョブ キューの長さが構成されているしきい値を超えるとアラートを生成します。
このモニターは、処理プール ジョブ キューのサイズが、構成されたしきい値を超過するとアラートを生成します。キューに入れられるということは、ジョブそのものはすばやく実行して戻されるとしても、何らかの要求がプールからの空きスレッドを待っているために実行されていない可能性を示しています。
使用可能なスレッドが処理プールから使い尽くされる状況は、いくつかの理由で発生することがあります。たとえば、サーバー設定が正しく構成されていないためにプールに影響が出ている場合や、ユーザーによる要求またはインスタンス上のスケジュール済みジョブによる要求が異常なほど高度な場合があります。ユーザー クエリに加え処理ジョブを実行するスレッドはすべて処理プールから割り当てられるので、重いワークロードがストレスを増し加え、この状態に至らせる可能性があります。
このアラートを解決するには、ワークロードの要件、ユーザーとジョブのスケジュール、サーバー コンピューター上でスケジュールされている他のプロセス、利用可能なリソースなど (これらに限定されません)、数多くの要因を管理者が理解し、検討する必要があります。処理プール ジョブ キューのサイズが設定したしきい値を超えた状態を正すには、次のいずれかの処置が役立つことがあります。
「SSAS 多次元パフォーマンス ガイド」を調べた後、プール構成の設定を変更して処理プールの使用可能スレッドを増やします。この処置は、慎重に検討し、テストしてから実施してください。あるいは、マイクロソフト サポートに問い合わせてください。
SSAS インスタンス上のワークロードを減らします。そのためには、ジョブを再スケジュールする、データベースの設計に変更を加える、ユーザー クエリを制限する、ワークロードを分割して他のサーバーに作業の一部を移動するといった方法があります。
プール内で利用可能なスレッドの数を増やすため、サーバー上で利用可能なコアの数を増やします。これにより、プール サイズを動的に大きくします。
アラートの構成されたしきい値を調整して、その条件を回避します。
処理プール ジョブ キューがサーバー上で問題にならなければ、モニターを完全に無効にします。
Analysis Services のサーバー構成プロパティ
名前 | 説明 | 既定値 |
有効 | ワークフローを有効または無効にします | はい |
アラートを生成する | ワークフローがアラートを生成するかどうかを定義する | はい |
間隔 (秒) | ワークフローを実行する定期的な実行間隔 (秒)。 | 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.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/>
<TimeoutSeconds>300</TimeoutSeconds>
</Configuration>
</UnitMonitor>