So, does RAID0 really increase disk performance? Yes, definitely. In our tests RAID0 doubled the average transfer rate of our hard disk drive.
How this disk performance increase reflects on overall system performance? It will depend on the kind of application you run: programs that make a lot of disk access will be the ones most benefited, of course. On PCMark05 this increase was between 4.44% and 8.82%, while on SYSmark2004 the best result was on Communication batch, where we saw a 15.25% performance increase. On this same program, Office Productivity performance was increased up to 6.52%, while we saw a performance increase up to 8.52% on 2D Creation batch.
With the price of hard disk drives lowering every day, it makes a lot of sense to assemble a RAID0 system if you are building a high-end machine. If you are willing to pick a large hard disk drive for your system, consider buying two hard disk drives with half the size each – for example, instead of buying one 160 GB hard disk drive, pick two 80 GB hard disk drives. The total capacity will be the same and your PC will be faster. Just don’t forget to choose a motherboard with on-board RAID function.
Regarding what stripe size you should use, it will depend a lot on the kind of application you use. Since we used different programs to measure the performance of our RAID system – each one using data files with different sizes –, the performance difference between the several stripe sizes we used varied a lot.
Generally speaking, if you handle large files – e.g., you use your PC mostly for editing videos and pictures –, choose a large stripe size. In this case, 128 KB is the way to go, no question about it.
If you handle smaller files, less than 128 KB, you need to choose a smaller stripe size. We’d suggest 4 KB, which improved the performance of real-world applications on SYSmark2004.
What is the theory behind this? Stripes are the “sectors” which will be used by the RAID system on your hard disk drives. If you are using 128 KB stripes, the system will divide your files into 128 KB segments – a 10 MB movie will be cut down into 80 stripes, for example (10 MB / 128 KB = 80). If you use 4 KB stripes, this same file will be sliced into 2,560 stripes. In the first case, the computer will have to handle 80 data transfers (40 per hard disk drive), while on the second the computer will have to handle 2,560 data transfers (1,280 per hard disk drive). Of course it is easier to control 80 data transfers than 2,560 data transfers, thus the first option is better.
But why we simply don’t configure all RAID0 systems to use 128 KB stripes? The enemy of larger stripes is called slack space. If you want to save a 100 KB on a RAID0 system using 128 KB stripes, it will use two 128 KB stripes, one at each hard disk drive, because this is the minimum amount of disk space it can use. So our 100 KB file will be taking up 256 KB of disk space – more than a half will be wasted, i.e., it will be empty space that could be used.
Finding the correct balance between performance and slack space is no easy task.