Disk Benchmarks

May 23rd, 2008, 12:02 pm PDT by Greg

I recently decided that I needed more space to backup/archive data. So, I went out and bought a terabyte external drive ($240 at Costco). This drive is a WD MyBook Studio, which happens to come with USB, FireWire, and eSATA connections. I started to wonder how different those connections really are. The theoretical bandwidth of each is 60MB/s, 50MB/s, and 384MB/s, respectively.

First of all, I could have sworn my motherboard had a eSATA connector, but it doesn’t. So, that’s out.

I decided to do some benchmarking with Bonnie++. This seems to be the standard Linux disk benchmarker. I used the default configuration for all the tests, since I figure they knew what they were doing when they decided what the defaults were.

After seeing an FAQ about benchmarking RAID, I decided to also try tiobench. It tests multithreaded IO performance. I decided to look at 2 threads doing sequential reads and writes.

Then, I started to wonder how these stacked up against my internal drives. SATA is back, but internal, and with a different disk on the end. I have two internal drives, both 400 GB, 7200 RPM, 16MB cache. They are used along with the Linux software RAID stuff to create a RAID 1 (for even moderately important stuff) and a RAID 0 (a big bit bucket).

I also tried a straight-up non-RAID partition on an internal disk (and I had to temporarily degrade my RAID to do it—I hope you appreciate this). The last tests I did were on my laptop and its 60 GB, 5400 RPM disk.

Here’s what I came up with. In all cases, larger numbers are better.

Disk Benchmarking Summary
Disk Bonnie Block Read (MB/s) Bonnie Block Write (MB/s) Bonnie Seek (/s) tiobench Read (MB/s) tiobench Write (MB/s)
SATA non-RAID 70 54 250 44 46
SATA RAID 1 53 45 366 54 37
SATA RAID 0 62 89 207 43 56
External USB 32 29 172 29 28
External Firewire 37 33 188 32 32
Laptop internal 20 23 94 18 18

[Intel D975XBX motherboard, Intel Core 2 Duo 6600, 2GB RAM, Ubuntu Hardy, relatively idle system, ReiserFS 3.6 partitions. Laptop is a Pentium M 1.86 GHz, 512 MB RAM, Ubuntu Hardy, idle, EXT3 filesystem.]

So… what did we learn from that?

  1. I’m too lazy (and non-visual) to bother making useful graphs in situations like these.
  2. USB 2.0 and Firewire are close enough in speed that it’s not worth mentioning.
  3. Damn, I wish I had eSATA on my motherboard to see how that fared.
  4. If possible, keep your disks inside the computer where they belong. The external performance is pretty impressive, but much slower than internals.
  5. … unless your other option is a slow laptop drive, then the externals start to look pretty snappy. I didn’t try the external connected to the laptop, though. There might be a processor/bus bottleneck.
  6. The RAID arrays aren’t nearly as fast as I thought they’d be. This could be a result of the Linux software RAID slowing things down. I have never used hardware RAID controllers (either the ones on many motherboards or dedicated cards).
  7. Seriously… who’s stealing all my RAID performance? I want it back!

Edit [05/23]: I feel I should add: All benchmarks are crap. They are positively correlated with the thing you want and call “performance”, but are definitely not directly related.

One Response to “Disk Benchmarks”

  1. Jeb Says:

    Finding the days a little long on sabbatical? 😉