Although the stripe size of a RAID array sounds like a negligible detail, the difference between a small and a large stripe size may be larger than the performance impact of adding a hard drive to your array! Hence, spending some time selecting the right stripe size for your particular server application makes a lot of sense. For desktop users, it is already safe to say that you may very well stay at the default stripe size of 32 or 64 kB - the differences you may achieve by changing are usually not worth the effort.
Our dual core Opteron Compare Prices on Dual Core Opteron Processors test system with Areca’s ARC-1220 controller provides a great platform to cross-test RAID 5 and RAID 6 setups with three to eight hard drives. As we mentioned in the initial articles on RAID Scaling, we found that the controller has its limits at just below 500 MB/s, which provides sufficient bandwidth for most RAID 5 and all RAID 6 scenarios, but not necessarily for RAID 0. However, the controller is great for I/O testing, and we found significant I/O performance differences when running tests at all possible RAID stripe sizes (4-128 kB).
In the best case, I/O performance doubles on the way from 2 kB to 128 kB stripe size when command queues are involved. A RAID 0 setup with eight drives provides 350-800 I/O operations per second at 2 kB stripe sizes and at 1-64 pending commands, but scales between 250-1900 I/Os per second at 128 kB stripes. This is more than double the performance. In a RAID 5 array, the relative increase is the same, while the absolute results are 300-500 I/Os per second at 2 kB stripes and 220-1100 I/Os at 128 kB. These results are slightly lower in RAID 6.
Throughput also benefits from larger stripe sizes, although the performance differences are rather small when compared to the tremendous differences in I/O performance. Still, it is possible to get a 10% improve in data transfer performance just by increasing the stripe size. The disadvantage of large stripe sizes can be reduced I/O performance when no command queue is involved, and also a rather annoying waste of storage capacity and potential performance if the files you store are smaller than the stripe size.
Please also have a look at our initial RAID Scaling Chart articles:
- RAID Scaling Charts, Part 1: RAID 0, RAID 1, RAID 0+1.
- RAID Scaling Charts, Part 2: RAID 5 and RAID 6