Any Formula Showing RAID 10 Read/Write vs. RAID 1?

  • I'm trying to determine if I should replace our RAID 1 tempdb array with RAID 10 on our most critical SQL Server.  We are experiencing application performance problems due to a vendor's application code, but it may take some time before the problems can be corrected.  I'm trying to find a formula or table that breaks down read/write performance for RAID 1 and RAID 10.  Any numbers or links to this information is appreciated.

    Thanks,   Dave

  • raid 1 and raid 10 are the same except raid 10 uses more disk pairs. for each additonal pair the performance gain is linear, or doubles the original pair. Many raid 10 controllers can split reads across both sides of the mirror doubling read performance - technically there is no write degredation ( unlike raid 5 ) . Put it like this if you use 4 spindles in your raid 10 it will go twice as fast as your raid 1, use 8 spindles it will go 4 times as fast ( e.g. i/o x 4 )

    As an aside I often see advice about splitting tempdb onto a seperate array for performance - good move if tempdb is busy - however the number of spindles available to tempdb should be equal to or greater than the number of available spindles on the data drive. otherwise you just put in a tempdb bottleneck.

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

  • Why do the number of spindles for tempdb have to be equal to or greater than the number of available spindles on the data drive?  If tempdb is on it's own array wouldnt tempdb and the data drive be independent of each other?

    Thanks,   Dave

  • all to do with the i/o per second throughput and bandwidth. If you've trended the performance on tempdb you'll know how many soindles you'll need at each raid to match throughput. Calcs should assume 85% of theoretical figures is absolute maximum so I'd say you should then allow 100% for growth, so your current figures shouldn't exceed 42% of the theoretical figures on your raid.

    e.g. assume a single disk can do 200 i/o sec random ( x 8kb ) if current throughput is 350 i/o random then you need 4 or 5 available spindles to match the 42% , that's 8 or 10 spindles at raid 10. ( exact i/o figures for disk depend upon disk model ) Then you need to do the sums for bandwidth. sequential read/writes do more i/o and in 64kb - then you have to balance the bandwidth of the scssi bus again remembering the 85% rule.

    so basically if your data drives can support 1,000 i/o sec throughput and you channel this into a 200 i/o sec tempdb you're adding a bottleneck. I'm just scratching the surface but hopefully you get the idea?

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

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

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