Monday, March 19, 2012

High Disk queue length.. how slow

I know if you see high disk queue length , it says you may have an IO
bottleneck..
So the question is when i see values like 10 or 20 or 40 for my disk queue
length, what do the values actually indicate ? What is the unit ? How slow
does a query with say a value of 40 correlate to vs a query with queue
length of 10 ?
Thanks
Hi Hassan
A long queue length may be an indication of an issue but not always, see
http://blogs.msdn.com/psssql/archive/2007/02/21/sql-server-urban-legends-discussed.aspx
as SQL Server may push the queue length above an average of 2 per disc in
certain circumstances. If these are peaks then it is less likely to be an
issue than a sustained value. Perfmon has several disc queue counters and you
can differentiate average, current, read, write and total lengths. Each
counter is the number of requests in the queue.
You may want to load this information into a SQL Profile and look at what
the system is doing while the queue are at these values.
John
"Hassan" wrote:

> I know if you see high disk queue length , it says you may have an IO
> bottleneck..
> So the question is when i see values like 10 or 20 or 40 for my disk queue
> length, what do the values actually indicate ? What is the unit ? How slow
> does a query with say a value of 40 correlate to vs a query with queue
> length of 10 ?
> Thanks
>
>
|||> So the question is when i see values like 10 or 20 or 40 for my disk queue
> length, what do the values actually indicate ? What is the unit ? How slow
> does a query with say a value of 40 correlate to vs a query with queue
> length of 10 ?
To expand on John's response, I often monitor both disk queue length and
checkpoint pages/sec and ignore the queue length during checkpoint spikes.
Also, even with a disk bottleneck, you will not necessarily see queuing.
You need to know how much activity your disk subsystem can handle (e.g.
transfers/sec.) so that you can know when it is saturated. One approach is
to first establish a baseline under ideal conditions using a tool like
SQLIOSim (http://support.microsoft.com/kb/231619). You'll know you have a
bottleneck when your activity approaches the baseline performance metrics.
Hope this helps.
Dan Guzman
SQL Server MVP
"Hassan" <hassan@.test.com> wrote in message
news:e3OjbuCJIHA.4196@.TK2MSFTNGP04.phx.gbl...
>I know if you see high disk queue length , it says you may have an IO
>bottleneck..
> So the question is when i see values like 10 or 20 or 40 for my disk queue
> length, what do the values actually indicate ? What is the unit ? How slow
> does a query with say a value of 40 correlate to vs a query with queue
> length of 10 ?
> Thanks
>
|||Hassan, I see you have several posts dealing with performance related
issues. Take a class and/or hire a professional to mentor you/review your
systems. Both will be money well spent - especially the latter if you get
someone good.
Kevin G. Boles
TheSQLGuru
Indicium Resources, Inc.
"Hassan" <hassan@.test.com> wrote in message
news:e3OjbuCJIHA.4196@.TK2MSFTNGP04.phx.gbl...
>I know if you see high disk queue length , it says you may have an IO
>bottleneck..
> So the question is when i see values like 10 or 20 or 40 for my disk queue
> length, what do the values actually indicate ? What is the unit ? How slow
> does a query with say a value of 40 correlate to vs a query with queue
> length of 10 ?
> Thanks
>
|||On Sun, 11 Nov 2007 07:57:46 -0600, "Dan Guzman"
<guzmanda@.nospam-online.sbcglobal.net> wrote:

>To expand on John's response, I often monitor both disk queue length and
>checkpoint pages/sec and ignore the queue length during checkpoint spikes.
>Also, even with a disk bottleneck, you will not necessarily see queuing.
Good advice.
The thing about the disk queue is that once that's an issue, it trumps
pretty much any other performance issue. So it's hard to answer the
question about how slow. Compared to no disk queue at all, it's
probably a big, huge difference, 10x, 100x, who knows, but with big
data you are simply going to have to do that IO sometime, but that
should still be possible with a small queue.
J.
|||Disk queue length alone is not a reliable indicator of a bottleneck in the
disk subsystem. To detect disk I/O bottleneck, it's better to look at I/O
latency (e.g. Avg disk sec/read and Avg disk sec/write) plus I/O block sizes
(e.g. Bytes/read and bytes/write), look at these metrics in combination with
disk queue length.
Also, see
http://sqlblog.com/blogs/linchi_shea/archive/2007/11/12/disk-queue-length-some-data-points-may-help.aspx for more info.
Linchi
"Hassan" wrote:

> I know if you see high disk queue length , it says you may have an IO
> bottleneck..
> So the question is when i see values like 10 or 20 or 40 for my disk queue
> length, what do the values actually indicate ? What is the unit ? How slow
> does a query with say a value of 40 correlate to vs a query with queue
> length of 10 ?
> Thanks
>
>

No comments:

Post a Comment