DOH! I made a mistake. Somehow I had it in my head that for OLTP databases SQL Server read data 64 KB at a time. While I was working on the next post for the series I asked a question on Twitter about transaction log write sizes. Jason Massie, a.k.a. @statisticsio, pointed me to this post from the SQL Customer Advisory Team. While I was reading it I noticed a small problem – OLTP data reads are done 8 KB at a time. Then I came across Linchi Shea’s post on OLTP workloads which confirmed it. The icing on the cake was when I opened perfmon on one of my servers and looked at the PhysicalDisk\Avg. Disk Bytes/Read counter. There it was, plain as day – 8 KB reads.
The good news is that the there was only a minor change in the outcome. For RAID 10 the optimal configuration came out to be a 64 KB RAID stripe (instead of a 128 KB stripe as I previously posted), 64 KB offset, and 64 KB allocation unit size; for RAID 5 the argument could be made for a 128 KB RAID stripe, but the 64 KB offset and 64 KB allocation unit size are still the clear winners. I have updated the text and images in the original posts to reflect the right read size. So fortunately, relatively no harm done (except to my ego).
No comments
Post a Comment