% Disk Read Time + % Disk Write Time not equals to % Disk Time?
Posted: April 21st, 2008 | Author: TnT Admin | Filed under: Analyze | Tags: Analyze, Disk | No Comments »These article is an extract of “Top Six FAQs on Windows 2000 Disk Performance” by Mark Friedman who also is the author of “Windows 2000 Performance Guide” that explains why the sum of % Disk Read Time and % Disk Write Time is not equal to % Disk Time. Why do we have to explain this? There are times that in Controller and Analysis, your client/user may observed that the total of % Disk Read Time and % Disk Write Time is not 100% and may question this to you. Therefore, a good understanding behind this will give you a build a positive credential to your client/user.
Often when you add the % Disk Read Time and % Disk Write Time counters together, they do not add up to % Disk Time. Furthermore, the % Disk Time counters are capped in the System Monitor at 100 percent because it would be confusing to report disk utilization greater than 100 percent. This occurs because the % Disk Time counters do not actually measure disk utilization. The Explain text that implies that they do represent disk utilization is very misleading.
What the % Disk Time counters actually do measure is a little complicated to explain but Mark provided a detail explanation in the following paragraphs which required your attention to read through.
The %Disk Time counter is not measured directly instead it is a value derived by the diskperf filter driver that provides disk performance statistics. diskperf is a layer of software sitting in the disk driver stack. As I/O Request packets (IRPs) pass through this layer, diskperf keeps track of the time I/O’s start and the time they finish. On the way to the device, diskperf records a timestamp for the IRP. On the way back from the device, the completion time is recorded. The difference is the duration of the I/O request.
Averaged over the collection interval, this becomes the Avg. Disk sec/Transfer, a direct measure of disk response time from the point of view of the device driver. diskperf also maintains byte counts and separate counters for reads and writes, at both the Logical and Physical Disk level. (This allows Avg. Disk sec/Transfer to be broken out into reads and writes.)
The Avg. Disk sec/Transfer measurement reported is based on the complete roundtrip time of a request. It is a direct measure of disk response time- which means it includes queue time. Queue time is the time spent waiting for the device because it is busy with another request or waiting for the SCSI bus to the device because it is busy.
% Disk Time is a value derived by diskperf from the sum of all IRP roundtrip times (Avg.Disk sec/Transfer) multiplied by Disk Transfers/sec, and divided by duration, or essentially:
- % Disk Time = Avg Disk sec/Transfer * Disk Transfers/sec
which is a calculation (subject to capping when it exceeds 100 percent).
Because the Avg. Disk sec/Transfer that diskperf measures includes disk queuing, % Disk Time can grow greater than 100 percent if there is significant disk queuing (at either the Physical or Logical Disk level). The Explain text in the official documentation suggests that this product of Avg. Disk sec/Transfer and Disk Transfers/sec measures % Disk busy. If (and this a big “if”) the IRP roundtrip time represented only service time, then the % Disk Time calculation would correspond to disk utilization. But Avg. Disk sec/Transfer includes queue time, so the formula used actually calculates something entirely different.
Leave a Reply