Over weekend I was looking at various RAID controller documents to update my material on storage performance, and I came across three items that were good for a hoot.
Direct IO, not Cached IO
The LSI slidedeck MegaRAID Performance Tuning and Benchmark Tips states that Direct IO is the correct setting on RAID controllers. "All read data is transferred directly to host memory, bypassing RAID controller cache. Any Read Ahead data is cached. All write data is transferred directly from host mempory bypassing RAID controller cache if Write-Through cache is set." The Cached IO " (All read and write data passes through controller cache memory on its ways to or from host memory, includes write data in Write-Through mode), legacy option is being eliminated in a future release.
Dell references Dell PERC, Dell PERC H700 and H800 Technical Guidebook Dell PowerEdge RAID Controllers Cards H700 and H800 Technical Guide.
New features: Cut-Through IO (CTIO)
Performance boosts (up to 2X IOPS performance),
optimized for superior IOPS of SSDs over HDDs,
Ideal for small-block random workloads,
Easy to enable
Cut-Through IO is an IO accelerator that boosts the throughput of devices connected to the PERC Controller. It is enabled through disabling the write-back cache (enable write-through cache) and disabling Read Ahead.
The Dell Technical White Paper High Performance Tier Implementation Guideline for PowerVault MD32200 and MD3200i Storage Arrays. the Dell Technical White Paper Array Tuning Best Practices for PowerVault MD32200 and MD3200i Storage Arrays,
High Performance Tier
The High Performance Tier is described as "an optional upgrade that can increase the performance of MD3200 and MD3220 series arrays that have high drive count, Solid state drives (SSDs) or high data transfer workloads. This implementation is based on an enhanced firmware algorithm and does not require any new hardware dependencies." The License Key for the Performance Tier is $3,660.
Between you and me, I am inclined to think the enhanced firmware disables the cached IO that seems to cripple SAN performance, as in those really expensive SAN storage systems that the vendor sales rep told you was immensely powerful that would solve all your storage problems. Only when you got it, you found the performance was crap. In benchmarking world, it has been known for a long time that caching disk IO had significant CPU overhead (where ever this caching was done) with negative impact on performance. Disabling and preferably bypassing cache code entirely improves performance to the level expected from the sum of the bare disk drives. So what exactly are these enhanced alogorithms? Caching is particularly idiotic with databases because the database engine is a cache. Suppose a block is read from disk, cached in the RAID controller memory, then cached again in the SQL Server buffer pool. Just how likely is it the SQL Server will need to issue a read for this block from disk? Caching write during a temporary surge, ie, check point can help, so long as the caching algorithms don't get in the way of real disk IO