パフォーマンス カウンター LogicalDisk\Current Disk Queue Length を監視します
論理ディスクで、“Current Queue Length” カウンターの複数の連続サンプル数が一定して高い値を示しています。 このまま放置すると、論理ディスクでの I/O 要求処理がさらに遅くなる可能性があります。
Current Disk Queue Length は、パフォーマンス データの収集時にディスクで保留されていた要求の数を示します。 この値が高い場合は、論理ディスクの処理速度が I/O 要求に追いついていないことを意味します。
論理ディスクでの処理が最近急激に増え、一気にしきい値を超えたか、時間の経過とともに論理ディスクの使用が徐々に増え、ある時点でしきい値を超えた可能性があります。
もう 1 つ考えられるのは、基盤となる物理ディスクまたはディスク サブシステムの一部が正常に機能していないか、正しく構成されていないために、論理ディスクのパフォーマンスが劣化した可能性です。
次の手順に従って、この問題の原因を調査します。
システムのシステム イベント ログを調べ、論理ディスクや、物理ディスク、ストレージ サブシステムの問題を示すエラーが発生していないか確認します。
Operations Manager のパフォーマンス ビューかレポート、またはパフォーマンス モニターを使って、現在の論理ディスク キューの長さの履歴を調べます。 この履歴から、問題が最近突発したものなのか、長い時間をかけて徐々に処理が増えたことによるものなのかがわかります。
論理ディスクの他のパフォーマンス カウンター (“Disk Bytes/sec”、“Disk Reads/sec”、“Disk Writes/sec” など) を調べ、どの種類の I/O が最もディスクを使用しているかを突き止めます。
"IO Data Operations/sec" などの "Process" パフォーマンス カウンターを調べ、システムで I/O が最も多いプロセスを突き止めます。 これらの上位プロセスがわかったら、“IO Read Operations/sec”と“IO Write Operations/sec” カウンターを使って、各上位プロセスが行っている I/O の種類を突き止めます。
調べた結果に応じて、次のいずれかの解決方法を試します。
ストレージ サブシステムの問題または構成ミスを解決します。
システム上の I/O の発生率を抑えるか、論理ディスクを増やして負荷を分散させます。
増大した負荷に対処できるよう、ドライブまたはストレージ サブシステムをアップグレードします。
増大した負荷がそれほど大きくなく、対処できるレベルである場合は、モニターのしきい値の設定をゆるくします。 同様に、連続サンプル数のしきい値を高く設定すれば、モニターによる状態の変更を遅らせることができます。
Target | Microsoft.Windows.Server.6.2.LogicalDisk | ||
Parent Monitor | System.Health.PerformanceState | ||
Category | PerformanceHealth | ||
Enabled | True | ||
Instance Name | LogicalDisk | ||
Counter Name | Current Disk Queue Length | ||
Frequency | 300 | ||
Alert Generate | True | ||
Alert Severity | Warning | ||
Alert Priority | Normal | ||
Alert Auto Resolve | True | ||
Monitor Type | System.Performance.ConsecutiveSamplesThreshold | ||
Remotable | True | ||
Accessibility | Public | ||
Alert Message |
| ||
RunAs | Default |
<UnitMonitor ID="Microsoft.Windows.Server.6.2.LogicalDisk.CurrentDiskQueueLength" Accessibility="Public" Enabled="true" Target="WindowsServer!Microsoft.Windows.Server.6.2.LogicalDisk" ParentMonitorID="SystemHealth!System.Health.PerformanceState" Remotable="true" Priority="Normal" TypeID="SystemPerf!System.Performance.ConsecutiveSamplesThreshold" ConfirmDelivery="false">
<Category>PerformanceHealth</Category>
<AlertSettings AlertMessage="Microsoft.Windows.Server.6.2.LogicalDisk.CurrentDiskQueueLength.AlertMessage">
<AlertOnState>Warning</AlertOnState>
<AutoResolve>true</AutoResolve>
<AlertPriority>Normal</AlertPriority>
<AlertSeverity>Warning</AlertSeverity>
<AlertParameters/>
</AlertSettings>
<OperationalStates>
<OperationalState ID="OverThreshold" MonitorTypeStateID="ConditionTrue" HealthState="Warning"/>
<OperationalState ID="UnderThreshold" MonitorTypeStateID="ConditionFalse" HealthState="Success"/>
</OperationalStates>
<Configuration>
<ComputerName>$Target/Host/Property[Type="Windows!Microsoft.Windows.Computer"]/NetworkName$</ComputerName>
<CounterName>Current Disk Queue Length</CounterName>
<ObjectName>LogicalDisk</ObjectName>
<InstanceName>$Target/Property[Type="Windows!Microsoft.Windows.LogicalDevice"]/DeviceID$</InstanceName>
<Frequency>300</Frequency>
<Threshold>32</Threshold>
<Direction>greaterequal</Direction>
<NumSamples>12</NumSamples>
</Configuration>
</UnitMonitor>