THE SQL Server Blog Spot on the Web

Welcome to - The SQL Server blog spot on the web Sign in | |
in Search

Joe Chang

Caching RAID Controller Performance Tuning Secrets (cough-giggle)

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

Published Monday, October 11, 2010 9:07 PM by jchang

Comment Notification

If you would like to receive an email when updates are made to this post, please register here

Subscribe to this post's comments using RSS



Wes Brown said:

I'm inclined to agree with you. I've got the latest and greatest LSI controller in house right now and talking with a rep they recommend that if you have enough IO to push the 290k IO's they can support you better disable the cache.

Cache MASKS IO problems not help IO be faster. There is a difference.


October 11, 2010 8:45 PM

Greg Linwood said:

What you say is true for the .mdf files but not true for .ldf files, which is why TPC benchmarks presently use SSDs for .mdf files (being isolated from direct IO by data caching) but they still use HDDs for TLogs - so they can leverage BBC to keep even log I/O's electronic.

October 11, 2010 11:57 PM

indeed said:

"Cache MASKS IO problems"

thats why everything in windows is cached

October 14, 2010 5:33 PM

jchang said:

some of you may have noticed a really stupid behavior in Windows Server 2008 file caching. Up to Windows Server 2003, only so much memory would be used as the file cache. Now Windows Server 2008 will use all free memory for file caching. The really stupid thing is when you copy a large file, all you want is to read it once, write it once. But no, W2K will put it in memory. This can actually cause SQL Server to give up memory.

October 14, 2010 10:43 PM

MartiniGM said:

Thanks for telling about the Cut-Throught IO.

My performance with a H700 was slower that with Intel Matrix Raid.

When changning from write back to write trough and turning off read ahead the controller changed from a toad to a rabbit.

August 16, 2016 4:28 PM

Linda said:

The article you have shared here very awesome. I really like and appreciated your work. I read deeply your article, the points you have mentioned in this article are useful

December 18, 2018 6:43 PM

Mike said:

Nice post shared.

February 14, 2019 2:02 AM

Leave a Comment


About jchang

Reverse engineering the SQL Server Cost Based Optimizer (Query Optimizer), NUMA System Architecture, performance tools developer - SQL ExecStats, mucking with the data distribution statistics histogram - decoding STATS_STREAM, Parallel Execution plans, microprocessors, SSD, HDD, SAN, storage performance, performance modeling and prediction, database architecture, SQL Server engine

This Blog


Privacy Statement