Doubling Theoretical Performance: RAID-0

For those of you who are already familiar with RAID and how it works, go ahead and skip to the benchmarks; these next two pages are designed to serve as brief introductions to the two most common forms of RAID on the desktop: RAID-0 and RAID-1.

Otherwise known as striping, RAID-0 is the only performance-enhancing form of RAID that we'll be talking about in this article. The premise behind striping is simple. Data being written to a drive is split into "stripes", generally 16 - 256KB in size, with each stripe being written to a different drive in the array. For example, say we were dealing with a 2-drive RAID-0 array with a stripe size of 128KB and we wanted to write 256KB of data; drive 0 would get the first 128KB of data written to it, and drive 1 would get the remaining 128KB.

Writing to a single hard disk

Writing to a two-disk RAID-0 array

Here, you can see that the write performance of RAID-0 can be almost double that of a single drive, since twice as much data gets written at the same time. The higher write performance is obtained at the expense of some controller overhead, since the RAID controller has to handle splitting up data into stripes before sending it to the drives themselves - but with modern day microprocessors being as fast as they are, the overhead is usually thought of as negligible.

Reading works the exact same way, but in reverse. Say that we want to read that same 256KB of data back; we pull one stripe from drive 0 and the other stripe from drive 1. The read is now completed in half the time, theoretically doubling performance.

We are careful to use the word "theoretical" because the performance advantages of RAID-0 disappear quickly if we're not dealing in ideal situations like the ones we just described. If too large of a stripe size is used, then the performance advantages of RAID-0 can be lost, while too small of a stripe size could result in excess overhead, reducing the performance improvement of the striped array.

We have seen in the past that for most desktop applications, the largest stripe size that a desktop RAID controller will offer is usually the best choice for performance. With Intel's ICH5/6, that translates into a 128KB stripe size, which for our comparison is what we decided to go with. The other stripe size options didn't offer any better performance for our desktop test suite.

The main downside to RAID-0, other than cost, is reliability. The size of a RAID-0 array is the sum of all of its members; so, two 100GB drives in a RAID-0 array will give you one array with a 200GB total capacity. Unfortunately, if you lose any one of the drives in the array, all of your data is lost and isn't recoverable. Since two drives are working in tandem and are both necessary to hold your data, you effectively halve the mean time between failure by moving to a two-drive RAID-0 array.

Index Putting the Redundancy in RAID: RAID-1


View All Comments

  • PrinceGaz - Saturday, July 03, 2004 - link

    The article pretty much confirmed my feeling that for general day-to-day usage, RAID 0 is more trouble than its worth.

    There are times when RAID 0 could theoretically help, extracting large (CD image sized) archives, or copying (not moving) a large file to another folder on the same drive. Even though I almost exclusively use CD images and Daemon Tools these days, the time spent extracting or copying them is negligible, and certainly not worth the considerably longer amount of time I'd need to spend when either drive in a RAID 0 array fails.

    Its true that Windows and applications will load faster from a RAID 0 array but again we're just talking a second or two for even the largest applications. As for Windows starting up, I personally never turn my main box off except when doing a hardware change so thats not an issue, but for those who do its unlikely to be more than five or six seconds difference so its hardly the end of the world. It would take an awful lot longer to reinstall Windows XP when one of the drives in the array fails than the few seconds saved each morning.

    I also happen to do video capture and processing which involves files upwards of ten gigs in size and feel RAID 0 is worthless here too, provided the single drive you capture to can keep up with the video bitrate (my Maxtor DiamondMax Plus9 7200rpm drive has no trouble at all with uncompressed lossless Huffyuv encoded 768x576 @ 25fps).

    When it comes to processing the video, I read it from one drive and write the output to another different physical hard-drive meaning it works faster than any RAID 0 array ever could-- one drive is doing nothing but reading the source file while the other only needs to write the result. With a RAID 0 array, both drives would be constantly switching between reading and writing two seperate files which would result in constant seek-time overheads even assuming the two-drive array was twice as fast as one drive (which they never are).

    So IMO, although the article could have included a few more details about the exact setup, it was overall spot on in suggesting you don't use onboard RAID 0 for desktop and home machines. And I'd add that you're better off *without* RAID 0 and keeping the two drives as seperate partitions if you're into video editing.
  • Nighteye2 - Saturday, July 03, 2004 - link

    Adding to all the comments already given, the Intel RAID is not very good as far as integrated RAID goes:

    Especially for business benchmarks:

    Also, notice the increase in performance between single and RAID in the first link.

    If you're HD-limited, RAID 0 helps a lot. Which is why using raptors skews the results of the tests Anand has done for this article.
  • Pumpkinierre - Friday, July 02, 2004 - link

    Apparently anything cpu limited wont be better with RAID0:

    This includes encoding (dont know about rendering but that can be cpu intensive as well as gpu). Large sequential reads with minimal cpu requirement will benefit from Raid eg simple file merging. You are better off splitting the raid up for encoding etc. and using one disc as the read and the other as the write on different controllers.

    Games only benefit in the loading stage if large files are required eg bitmaps in Baldur's Gate.

    RAID1 has the advantage of backup recovery as well as improved read speeds which is more beneficial to desktop use than writes. Raid0 has the capacity improvement advantager. So if size is not the problem (and it never is!), Raid1 is better for the desktop than Raid0. I'm sure if they varied the stripe size in Raid1 then games loading times would be improved. Even AT had one game load substantially faster (equivalent to the double platter 74Gb big brother Raptor). Perhaps an analysis of game file structure and loading by AT would be more beneficial to readers.

  • KF - Friday, July 02, 2004 - link

    >It's simple, really. Locating data on one disk is faster than
    > locating it on two disks simultaneously.
    That is no matter
    > which controller you use.
    Sending the two seek commands versus one should add negligeable time. The actual seeks would be done concurrently. The rotational latencies on each drive is independent. Therefore the time to locate the data should be very close to the same as for a single drive.

    However, if the time to locate the data swamps the data tranfer time, say twenty times as long, then yes, doubling the data transfer rate is not going to show much. So according to this idea, almost all file transfers take place in approximately the seek + rotation latency time, and the remainder of the transfer is negligeable. The problem is that the data transfer would be even more neglible for more drives. Let's say the actual data transfer accounts for 5% with one drive. Then it would be 2-3% for 2 drives, and 1% for 4 drives. OTOH, people are claiming that with higher RAID, you do get dramatic differences, not negligeable differences.
  • KF - Friday, July 02, 2004 - link

    >Let me get this straight, you think apps today (I assume you mean
    >desktop/office apps) aren't dependent enough on disk I/O, and should start
    >to be written so they are more I/O bound?

    >I hope you don't mind, but I'm going to put this in the old sig
    >library for use someday. :)

    No you didn't get it straight. Don't worry, Denial, you will understand what it means when they start doing it in the next few years.

    But if you need something for your sig, try this:
    "People have been saying John Kerry eats excrement sandwiches for lunch at the French embassy. No way. Excrement doesn't go with quiche, croissants and chardonay. Maybe for breakfast."
  • Pollock - Friday, July 02, 2004 - link

    Err, meant #71. Reply
  • qquizz - Friday, July 02, 2004 - link

    For those that are asking about the Intel Application Accelerator. The 875 chipset doesn't need/support it:
  • MiLLeRBoY - Friday, July 02, 2004 - link

    I have a RAID 0 array and I definitely notice a dramatic improvement in copying files, file compression, and loading times.

    It is definitely worth it.
  • Pollock - Friday, July 02, 2004 - link

    Actually #72, Anand tested level loading in Far Cry and Unreal 2004, which to my knowledge fit the bill for games you suggested. The result: RAID 0 was equal or actually a little worse. I guess latencies are still more important than bandwidth here...? Reply
  • Denial - Friday, July 02, 2004 - link

    A$$ Masher,

    You seem to be the only person turned on by my system. Sorry, but I don't swing that way. You'll have a better chance at the internet cafes over in Chelsea.

Log in

Don't have an account? Sign up now