Average Disk Queue Length

  • "Additionally, check out your Avg. Disk Queue Length. This should always be less than 1.0 and usually is zero. As this average queue length number increases, disk contention increases. Contention means that the system is waiting while another I/O is accessing the disk. Occasional waits are normal, but if this is a steady thing, you have an I/O bottleneck. [Editor’s Note: SQL-Server-Performance.Com recommends that the Average Disk Queue Length to be less than 2.0 for best disk array performance.]"

    I havent been at my current position that long, so I am playing more catchup than anything right now.

    With regards to the subject of this post, Avg Disk Queue Length (ADQL), I have be monitoring the LIVE DB performance for a while now, and I have noticed that the ADQL is spiking. The spikes are quite harsh, and quite often.

    Looking at PerfMon now, the "Maximum" value is 12.862 and "duration" is 8:20.

    There are spikes from the ADQL all over the PerfMon graph.

    What else can I do to confirm that I have a IO bottleneck?

    Currently running SQL2000, Service Pack 4. Machine is 2 3.00GHz Intel processors and 2 gigs of memory.

    Also running a RAID5 device, not the greatest, I know.

    Please let me know what you think...

    Thanks in advance,

    Graham

  • Another question that just came to me, could disk defragmentation cause IO problems, like this?

    As we are in the process of buying DiskKeeper.

    Thanks,

    Graham

  • The Average Disk Queue actually depends on the number of disks you have, as long as it is under (2 * the number of disks in the array) you should be alright, if it is spiking over this value for any significant amount of time then you've got an IO problem.

    Hope this helps

  • Well the array consists of 3 x 146.8GB harddisks.

    Seeing spikes continuously, with values from 1 to 12...

    So basically I need to keep it under 6?

    Thanks for the response!

  • Disk queue counters are useful and yes nfts fragmentation will not help , but I make use of i/o completion time with idle time to get a better picture. Especially with SAN's these days the queue counters often don't mean much. Try looking at the i/o completion times ( for read and write ) vs idle time ( idle time is considered more accurate than usage ) to establish where your problem may lay. Don't worry too much about the values but look at the trends, obviously high i/o completion times are a worry !!!

    [font="Comic Sans MS"]The GrumpyOldDBA[/font]
    www.grumpyolddba.co.uk
    http://sqlblogcasts.com/blogs/grumpyolddba/

  • I ususally monitor the counter of sec/read and sec/write in perf monitor, and the IO stall by ::fn_virtualfilestats in SQL server.

    They are really helpful to identify IO bottlenecks.

     

  • Thanks for all the responses, most helpful

Viewing 7 posts - 1 through 6 (of 6 total)

You must be logged in to reply to this topic. Login to reply