io_stall_write_ms Vs AvgDiskSec/Write

  • When I check the stall metrics on Disk Writes the io_stall per write (num_of_bytes_written/io_stall_write_ms) that I am getting is 213 ms, for my tempDB, which is on its own isolated drive.

    So going by the above 213 ms is the time for each write to the Disk,

    When I run the Perfmon and check AvgDiskSec/Write I get it at 20, with a scale of 100,000 -- So if my math is right it should (20/100000 ) * 1000 = 0.2 ms.

    So going by the Perfmon -- I am waiting 0.2 ms is the time for each write.

    That is a huge difference, isnt it ? Why?

    Or am I understanding the whole thing wrong.

    PS: Ran Perfmon for 12 Hours. And yes the IO Stats are since SQL Server Started 2 Months ago.

    But shouldn't the above 2 numbers be close ? if not equal?

  • A stall isn't the amount of time it took to write to the disk, rather it's the time spent waiting during the writes to the disk. I wouldn't compare the two numbers you're comparing.

    "The credit belongs to the man who is actually in the arena, whose face is marred by dust and sweat and blood"
    - Theodore Roosevelt

    Author of:
    SQL Server Execution Plans
    SQL Server Query Performance Tuning

  • OK then, which Perfmon Counter will tell me the Stalls ?

    Any comparable ones. What I am trying to determine is what times of the day does the TempDB get used heavily to dig deeper into it.

    Stalls of 213 is bad, I need to determine what is causing that number to be so high on TempDB.

    My Data Disks have less than 1 ms of Stalls. But these are different physical drives.

  • You're getting the stalls from the DMO. That's the thing to use.

    "The credit belongs to the man who is actually in the arena, whose face is marred by dust and sweat and blood"
    - Theodore Roosevelt

    Author of:
    SQL Server Execution Plans
    SQL Server Query Performance Tuning

Viewing 4 posts - 1 through 3 (of 3 total)

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