Текущая длина очереди диска (физический диск)

Microsoft.Windows.Server.10.0.PhysicalDisk.CurrentDiskQueueLength (UnitMonitor)

Мониторинг счетчика производительности "Физический диск\Текущая длина очереди диска"

Knowledge Base article:

Сводка

На физическом диске наблюдалось стабильно высокое значение датчика "Текущая длина очереди" при нескольких последовательных считываниях. В результате на данном физическом диске, скорее всего, увеличатся задержки выполнения запросов ввода-вывода.

"Текущая длина очереди диска" — это количество запросов, находящихся в состоянии ожидания на диске в момент сбора данных о производительности. Это означает, что скорость, с которой поступают запросы ввода-вывода, превышает скорость обработки таких запросов физическим диском.

Причины

Возможно, на физическом диске недавно наблюдалось существенное увеличение количества операций, и это привело к превышению порога, либо степень использования диска постоянно росла с течением времени и превысила пороговое значение.

Также не исключено, что некоторая часть физических дисков или дисковой подсистемы имеет неисправность или неправильно настроена, что сказывается на производительности физического диска.

Решения

Для дальнейшей диагностики проблемы выполните следующие действия.

На основании сведений, полученных при дальнейшем анализе, могут быть приняты различные решения, включая следующие.

Element properties:

TargetMicrosoft.Windows.Server.10.0.PhysicalDisk
Parent MonitorSystem.Health.PerformanceState
CategoryPerformanceHealth
EnabledTrue
Instance NamePhysicalDisk
Counter NameCurrent Disk Queue Length
Frequency300
Alert GenerateTrue
Alert SeverityWarning
Alert PriorityNormal
Alert Auto ResolveTrue
Monitor TypeSystem.Performance.ConsecutiveSamplesThreshold
RemotableTrue
AccessibilityPublic
Alert Message
Текущая длина очереди физического диска слишком велика
Превышено пороговое значение счетчика "Физический диск\текущая длина очереди диска".
RunAsDefault

Source Code:

<UnitMonitor ID="Microsoft.Windows.Server.10.0.PhysicalDisk.CurrentDiskQueueLength" Accessibility="Public" Enabled="true" Target="ServervNext!Microsoft.Windows.Server.10.0.PhysicalDisk" ParentMonitorID="SystemHealth!System.Health.PerformanceState" Remotable="true" Priority="Normal" TypeID="SystemPerf!System.Performance.ConsecutiveSamplesThreshold" ConfirmDelivery="false">
<Category>PerformanceHealth</Category>
<AlertSettings AlertMessage="Microsoft.Windows.Server.10.0.PhysicalDisk.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>PhysicalDisk</ObjectName>
<InstanceName>$Target/Property[Type="WindowsServer!Microsoft.Windows.Server.PhysicalDisk"]/PerfmonInstance$</InstanceName>
<Frequency>300</Frequency>
<Threshold>32</Threshold>
<Direction>greaterequal</Direction>
<NumSamples>12</NumSamples>
</Configuration>
</UnitMonitor>