Average Physical Disk Seconds Per Read

Microsoft.Windows.Server.2008.PhysicalDisk.AvgDiskSecPerRead (UnitMonitor)

Monitors the average seconds per read operation to disk.

Knowledge Base article:


The Avg. Disk sec/Read (PhysicalDisk\Avg. Disk sec/Read) for the physical disk has exceeded the threshold. The physical disk and possibly even overall system performance may significantly diminish which will result in poor operating system and application performance.

The Avg. Disk sec/Read counter measures the average time of data reads on the disk.


A high Avg. Disk sec/Read performance counter value may occur due to a burst of disk read requests by either an operating system or application.


To view recent history for the Physical Disk\Avg. Disk sec/Read performance counter you can use the following view:

Start Physical Disk Performance View

To increase the available storage subsystem throughput for the physical disk, do one or more of the following:

Be sure to set this threshold value appropriately for your specific storage hardware. The threshold value will vary according to the disk’s underlying storage subsystem. For example, the “disk” might be a single spindle or a large disk array.


The Avg. Disk sec/Read counter is useful in gathering throughput data. If the average time is long enough, you can analyze a histogram of the array’s response to specific loads (queues, request sizes, and so on). If possible, you should observe workloads separately.

You can use throughput metrics to determine:

1. The behavior of a workload running on a given host system. You can track the workload requirements for disk read requests over time. Characterization of workloads is an important part of performance analysis and capacity planning.

2. The peak and sustainable levels of performance that are provided by a given storage subsystem. A workload can either artificially or naturally be used to push a storage subsystem (in this case, a given physical disk) to its limits. Determining these limits provides useful configuration information for system designers and administrators.

However, without thorough knowledge of the underlying storage subsystem of the physical disk (for example, knowing whether it is a single spindle or a massive disk array), it can be difficult to provide an optimized one size fits all threshold value.

You must also consider the Avg. Disk sec/Read counter in conjunction with other read request characteristics (for example, request size and randomness/sequentially) and the equivalent counters for read disk requests.

If the Avg. Disk sec/Read counter is tracked over time and if it increases with the intensity of the workloads that are driving the read requests, it is reasonable to suspect that the physical disk is saturated if throughput does not increase and overall system throughput starts to degrade.

For more information about storage architecture and driver support, see the Storage - Architecture and Driver Support Web site at http://go.microsoft.com/fwlink/?LinkId=26156.

Element properties:

Parent MonitorSystem.Health.PerformanceState
Instance NamePhysicalDisk
Counter NameAvg. Disk sec/Read
Alert GenerateTrue
Alert SeverityWarning
Alert PriorityNormal
Alert Auto ResolveTrue
Monitor TypeSystem.Performance.ConsecutiveSamplesThreshold
Alert Message
Disk read latency is too high
The threshold for the Physical Disk\Avg. Disk sec/Read performance counter has been exceeded.

Source Code:

<UnitMonitor ID="Microsoft.Windows.Server.2008.PhysicalDisk.AvgDiskSecPerRead" Accessibility="Public" Enabled="false" Target="Server2008!Microsoft.Windows.Server.2008.PhysicalDisk" ParentMonitorID="SystemHealth!System.Health.PerformanceState" Remotable="true" Priority="Normal" TypeID="SystemPerf!System.Performance.ConsecutiveSamplesThreshold" ConfirmDelivery="false">
<AlertSettings AlertMessage="Microsoft.Windows.Server.2008.PhysicalDisk.AvgDiskSecPerRead.AlertMessage">
<OperationalState ID="OverThreshold" MonitorTypeStateID="ConditionTrue" HealthState="Warning"/>
<OperationalState ID="UnderThreshold" MonitorTypeStateID="ConditionFalse" HealthState="Success"/>
<CounterName>Avg. Disk sec/Read</CounterName>