監視效能計數器 LogicalDisk\Current Disk Queue Length
在多個連續範例中,邏輯磁碟 “Current Queue Length” 計數器的值持續偏高。 因此,這個邏輯磁碟上的 I/O 要求延遲很可能會增加。
「目前磁碟佇列長度」是收集效能資料時磁碟上的未處理要求數目。 這表示邏輯磁碟回應 I/O 要求的速度趕不上提出要求的速度。
邏輯磁碟最近曾發生活動大幅增加的情況,而且此驟增情況導致活動量超過閾值,或是邏輯磁碟的使用率隨著時間穩定增加,最後達到超過閾值的程度。
另一個可能的原因是基礎實體磁碟或磁碟子系統的某些部分發生問題或設定不正確,因而影響到邏輯磁碟的效能。
若要進一步調查此問題,請考慮採用下列方法:
檢閱系統上的系統事件記錄檔,查看是否有任何錯誤指出邏輯磁碟、實體磁碟或儲存子系統發生問題。
使用 Operations Manager 或效能監視中的效能檢視或報表,檢閱此邏輯磁碟的目前佇列長度歷程。 這可協助您判斷問題是最近才發生,還是活動在較長的時間內持續穩定增加。
檢閱邏輯磁碟的其他效能計數器,例如 “Disk Bytes/sec”、“Disk Reads/sec” 和 “Disk Writes/sec”,以瞭解哪些類型的 I/O 會造成整體磁碟使用率提高。
檢閱「處理程序」效能計數器,例如 “IO Data Operations/sec”,以識別哪些處理程序對系統整體 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>