処理プール I/O ジョブ キューの長さ

Microsoft.SQLServer.2014.AnalysisServices.UnitMonitor.Instance.ProcessingPoolIOJobQueueLength (UnitMonitor)

このモニターは、SSAS インスタンスの処理プール I/O ジョブ キューの長さが、構成済みのしきい値より長いときに警告を出します。

Knowledge Base article:

概要

処理プール I/O ジョブ キューのサイズが構成済みのしきい値を超えると、モニターはアラートを出します。キューは、ジョブ自体はすばやく実行されて返される場合でも、いくつかの要求が、プールの空きスレッドを待機しているために実行されていない可能性を示す場合があります。I/O ジョブ プールのキューは、I/O のボトルネックがサーバーに存在していることを示しています。

原因

使用可能なスレッドが処理プールから使い尽くされる状況は、いくつかの理由で発生することがあります。すなわち、サーバー設定が正しく構成されていないためにプールに影響が出ている場合や、ユーザーによる要求またはインスタンス上のスケジュール済みジョブによる要求が異常なほど高度な場合があります。ユーザー クエリに加え処理ジョブを実行するスレッドはすべて処理プールから割り当てられるので、重いワークロードがストレスを増し加え、この状態に至らせる可能性があります。

解決方法

このアラートを解決するには、関係するさまざまな要因を管理者が理解し、考慮に入れる必要があります。要因として、ワークロード要件、ユーザーとジョブのスケジュール、サーバー コンピューターでスケジュールされる他のプロセス、使用可能なリソースがありますが、それらに限りません。処理プール I/O ジョブ キューのサイズが構成済みしきい値を超過したときの状況を修復するためのアクションとして、次のアクションが考えられます:

外部資料

Analysis Services でのサーバー プロパティの構成

SSAS パフォーマンス カウンターに関する TechNet 資料

SSAS 多次元パフォーマンス ガイド

上書き可能なパラメーター

名前

説明

既定値

有効

ワークフローを有効または無効にします

はい

アラートを生成する

ワークフローがアラートを生成するかどうかを定義する

はい

間隔 (秒)

ワークフローを実行する定期的な実行間隔 (秒)。

900

サンプル数

正常性状態は、しきい値違反数が違反の最小数以上になると変更されます。

4

同期時刻

24 時間形式で指定した同期時刻。省略可能です。

 

警告しきい値

正常性状態は、Analysis Services パフォーマンス カウンターがしきい値を超えると変更されます。

0

タイムアウト (秒)

ワークフローが終了して失敗とマークされるまでの、ワークフローの許容実行時間を指定します。

300

Element properties:

TargetMicrosoft.SQLServer.2014.AnalysisServices.Instance
Parent MonitorSystem.Health.PerformanceState
CategoryPerformanceHealth
EnabledTrue
Alert GenerateTrue
Alert SeverityWarning
Alert PriorityNormal
Alert Auto ResolveTrue
Monitor TypeMicrosoft.SQLServer.2014.AnalysisServices.MonitorType.Instance.CommonPerformanceData
RemotableTrue
AccessibilityPublic
Alert Message
SSAS 2014: 処理プール I/O ジョブ キューの長さが超過しました。
コンピューター {0} 上の SSAS インスタンス {1} の処理プール I/O ジョブ キューの長さが、構成済みのしきい値を超過しています。
現在のジョブ キューの長さ: {2}
RunAsDefault

Source Code:

<UnitMonitor ID="Microsoft.SQLServer.2014.AnalysisServices.UnitMonitor.Instance.ProcessingPoolIOJobQueueLength" Accessibility="Public" Enabled="true" Remotable="true" Priority="Normal" Target="SQLAS!Microsoft.SQLServer.2014.AnalysisServices.Instance" TypeID="Microsoft.SQLServer.2014.AnalysisServices.MonitorType.Instance.CommonPerformanceData" ParentMonitorID="SystemHealth!System.Health.PerformanceState" ConfirmDelivery="false">
<Category>PerformanceHealth</Category>
<AlertSettings AlertMessage="Microsoft.SQLServer.2014.AnalysisServices.UnitMonitor.Instance.ProcessingPoolIOJobQueueLength.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.2014.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 I/O job queue length</PerformanceCounterName>
<CounterName>Processing pool I/O job queue length</CounterName>
<Threshold>0</Threshold>
<SampleCount>4</SampleCount>
<IntervalSeconds>900</IntervalSeconds>
<SyncTime/>
<TimeoutSeconds>300</TimeoutSeconds>
</Configuration>
</UnitMonitor>