Server Fault is a question and answer site for system and network administrators. It's 100% free, no registration required.

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

I realize that many are recommending that we look at other counters like sec/Read and sec/Write instead of Avg. Disk Queue Length. However, I have a question about this particular counter:

It's typically recommended that Avg. Disk Queue Length not be greater than 2. Just as often I'll see that it should not be greater than 2 + the number of spindles in the "physical disk." This is what I'm curious about. If I'm using an external RAID system, doesn't the OS see it as one physical spindle? Would I still factor in the number of physical spindles in the array when using this counter? Some insight into how this works would be helpful.

share|improve this question
up vote 5 down vote accepted

The OS doesn't do any fancy calculation. I speculate here, but given how performance counters work in generals I guess it just going to increment the counter and the base counter when it posts the IO, decrement the counter when the IO returns. The performance counter type being defined as 'Average', the performance tools and libraries will do computation from the raw values (counter, base counter) and the time between samples and the result will the be counter value you see.

Nowhere in this process does the physical structure of the RAID array come into picture. So when you evaluate the value, you must factor in the number of spindles and consider it accordingly when deciding if the value is high or low. If the external RAID has 100 spindles, then an avg of 200 requests pending is a good one, it measn all 100 spindles have something to chew on. If it has 10 spindles though, the average queue of 200 means that each spindle is looking at 19 more requests pending after is done with the current one, on average, so the I/O is bottleneck.

share|improve this answer
+1 Other than software RAID the OS knows nothing about the number of spindles. That's a user supplied piece of the puzzle. In this context an external RAID array is no different to an internal hardware RAID array. – John Gardeniers Dec 31 '09 at 21:27
Thanks Remus, the explanation in your second paragraph was exactly what I needed. I think I understand now! – Boden Dec 31 '09 at 21:40

divide the queue length by number of used spindles. take into account hot spares and parity depending on your RAID config.

share|improve this answer

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.