RAID0, also known as data striping, can be used if you want to increase your PC disk performance, being recommended to high-end PCs. It works by accessing two identical hard disk drives in parallel, so in theory it doubles the data transfer rate between the computer and the hard disk drives. We were very curious to see if RAID0 really increases the hard disk performance and how it reflects on PC overall performance, so we set a RAID0 system, benchmarked our system and compared it to the same system with just one hard disk drive installed. We set our RAID0 with several different stripe sizes, from 4 KB to 128 KB, to check which configuration would give us the best performance. Check it out.
We have already published a full tutorial on how to setup a RAID system. In this tutorial we explained how RAID works and how to setup your own RAID array. Please read this tutorial if you need more technical background on RAID.
Our test procedure consisted in formatting our single hard disk drive and installing all the software described in the next page, running them and writing down the results. Then we installed a second identical hard disk drive, configured the two hard drives as a RAID0 array using the default stripe size, which was 128 KB, and repeated all the process. We did the same thing over and over again, decreasing the stripe size at each run, until we reached the minimum possible stripe size, which was 4 KB.
We measured two aspects: the hard disk drive transfer rate and the system overall performance. While the first aspect tells us if the hard disk drive performance really increases with RAID0, the second aspect will tell us if this increase in disk performance (if any) will be translated into a higher system overall performance, i.e., when you run daily programs like Microsoft Office.
We played with stripe size because this is one of the biggest questions users have when assembling a RAID0 system: what stripe size should I use? Which one provides the highest performance? We will provide some thoughts on this issue as well.
Enough talking, let’s go to our benchmarks.
[nextpage title=”How We Tested”]
During our benchmarking sessions, we used the configuration listed below. Between our benchmarking sessions the only variable was the hard disk drive configuration.
- Motherboard: Intel D975XBX2
- Processor: Core 2 Xtreme X6800 (Dual-Core, 2.93 GHz, 1,066 MHz FSB, 4 MB L2 memory cache)
- Memory: 2 GB DDR2-1066/PC2-8500, running at 800 MHz 5-5-5-15 (Corsair TWIN2X2048 memory kit)
- Cooler: Gigabyte Neon 775.
- Hard Disk Drives: Samsung HD080HJ (SATA-300, 7,200 rpm, 8 MB buffer).
- Video Card: XFX GeForce 7800 GTX.
- Video resolution: 1024x768x32@85Hz.
- Power Supply: Antec Neo HE 550.
- Windows XP Professional installed using NTFS
- Service Pack 2
- DirectX 9.0c
- NVIDIA video driver version: 91.47
- Intel Inf chipset driver version: 188.8.131.522
- Audio driver version: Sigmatel 5.10.5143
- LAN driver version: Intel Pro/1000 184.108.40.206
- RAID driver version (Marvell): 220.127.116.11-beta
- RAID driver version (Intel): 18.104.22.1685
We adopted a 3% error margin; thus, differences below 3% cannot be considered relevant. In other words, products with a performance difference below 3% should be considered as having similar performance.
[nextpage title=”HD Tach 3″]
We measured the hard disk transfer rate with HD Tach 3. On the charts below you can see the transfer rate of our Samsung HD080HJ hard disk drive when it was configured alone (“single”) and then when we installed two of them under RAID0. HD Tach 3 provides two results, burst read rate, which is the maximum transfer rate the hard disk drive system can achieve, and the average transfer rate. You can see the results for the various stripe sizes we configured. The results are given in MB/s, so the higher, the better.
The hard disk system burst read transfer rate increased between 49.17% and 57.39% when we used RAID0 configuration instead of a single disk configuration. The performance difference between the highest RAID result (32 KB stripes) and the lowest RAID result (64 KB stripes) was of 5.52%.
The hard disk system average transfer rate increased between 93.76% and 101.36% when we used a RAID0 configuration instead of a single disk configuration – in other words, RAID0 doubled the hard disk drive system average speed! The performance difference between the highest RAID result (32 KB stripes) and the lowest RAID result (128 KB stripes) was of 3.93%.
We used PCMark05 to conduct two tests: the HDD benchmark module and the system overall performance, called System. On the first one we wanted to see the performance increase in the hard disk drive system by the use of a RAID0 system instead of a single-drive configuration. On the second test we wanted to see if this increase in the hard disk performance was translated into a higher overall performance.
System batch performs the following tests: HDD XP Startup, Physics and 3D, 2D Transparent Window, 3D Pixel Shader, Web Page Rendering, File Decryption, 2D Graphics Memory – 64 lines, HDD General Usage and three multithreading tests. The results are given in a PCMark05 specific unit.
HDD batch performs the following tests: XP startup, application loading, general usage, virus scanning and file write. The results are also in a PCMark05 specific unit.
The HDD batch score increased between 34.40% and 47.39% when we used a RAID0 configuration instead of a single disk configuration. The performance difference between the highest RAID result (128 KB stripes) and the lowest one (4 KB stripes) was of 9.66%.
Our PC overall performance increased between 4.44% and 8.82% when we used a RAID0 configuration instead of a single disk configuration – excluding the result with 64 KB stripes, which was 3.73% below the result achieved by our single-drive configuration. As you can see, a higher disk performance increases the overall system performance a little bit, but not as much as the performance increase of the hard disk drive system itself.
SYSmark2004 is a program that simulates the use of real-world applications. Thus, we consider this the best software to measure, in practical terms, the system performance.
The benchmarks are divided into two groups:
- Internet Content Creation: Simulates the authoring of a website containing text, images, videos and animations. The following programs are used: Adobe After Effects 5.5, Adobe Photoshop 7.01, Adobe Premiere 6.5, Discreet 3ds Max 5.1, Macromedia Dreamweaver MX, Macromedia Flash MX, Microsoft Windows Media Encoder 9, McAfee VirusScan 7.0 and Winzip 8.1.
- Office Productivity: Simulates the use of an office suite, i.e., simulates sending e-mails, word processing, spreadsheets, presentations, etc. The following programs are used: Adobe Acrobat 5.05, Microsoft Office XP SP2, Internet Explorer 6.0 SP1, NaturallySpeaking 6, McAfee VirusScan 7.0 and Winzip 8.1.
This software delivers several results, all of them using a specific SYSmark2004 unit. First we have a SYSmark2004 overall score. Then we have a group result for each batch listed above. And for each batch, we have specific results: 3D Creation, 2D Creation and Web Publication for Internet Content Creation; and Communication, Document Creation and Data Analysis for Office Productivity.
For a better visualization, we separated the results into three graphs: overall score, Internet Content Creation score and Office Productivity score.
On SYSmark2004 overall score we could see performance difference between our single hard disk drive and our RAID0 array only on half of the our scenarios, when we used 4 KB, 8 KB and 128 KB stripes (5.29%, 3.90% and 4.46%, respectively).
On SYSmark2004 Internet Content Creation batch overall score we could see performance difference only when using 128 KB stripes (3.22%) and 4 KB stripes (4.08%). We saw no performance difference on 3D Creation batch and the major performance difference was on 2D Creation batch, where the use of RAID0 increased the performance between 5.39% and 8.52%. On Web Publication batch we could only see a performance increase when using 128 KB stripes (3.37%) and 4 KB stripes (3.61%).
On SYSmark2004 Office Productivity batch overall score we could see performance difference when we used 128 KB stripes (5.80%), 8 KB stripes (5.07%) and 4 KB stripes (6.52%). On Communication batch we saw an expressive performance gain when using 4 KB stripes (15.25%), 8 KB stripes (11.30%), 16 KB stripes (5.08%) and 128 KB stripes (13.56%). We saw no performance difference on Document Creation and Data Analysis batches.
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.