Saturday, December 20, 2008

Factors affecting hard drive performance

I apologize in advance for presenting "a friend" anecdote.

There is more to drive performance than spindle speed. Areal density -- how tightly the bits are packed -- is another big factor.

Spindle speed affects how quickly the disk can get a sector of data under the drive's read/write head, and numerically, a 5400rpm drive is always going to average slower than a 7200rpm drive. That's important because sometimes the data you want is on the other side of the platter, so you might have to wait 12 or 16 milliseconds for it to get to you. A faster spindle speed decreases this wait time -- important when the data you seek is scattered around the disk.

But what if you pack the bits more tightly, fitting more megabytes into the same space on those spinning platters? Then you can read/write data on those platters more rapidly because they're whipping more data by the read/write head in the same amount of time. Your data throughput goes up, so you spend less time reading/writing. In plain terms, a single-platter 320 GB drive will push data through more quickly than a single-platter 250 GB drive of the same spindle speed. And sometimes that increase in areal density outweighs the effect of spindle speed.

Here's where the dreaded "my friend" story comes in (don't worry, it's short). He upgraded the drive in his MacBook Pro from a 7200rpm, 200 GB drive to a 5400rpm, 320 GB drive. He was expecting a performance drop, but found that thanks to increased areal density, the newer drive was much faster. And not only in benchmarks, but in actual use -- speed he could "feel" in system responsiveness.

This demonstrates that spindle speed, while important, isn't the only factor affecting overall performance.

We also should keep in mind that drives have generational improvements as well, as their designers improve electronics, firmware, manufacturing techniques and materials, etc, from year to year. A current generation drive will almost always out-perform the previous generation of same capacity, spindle speed and number of platters. And as we saw above, a current generation drive may even outperform last year's drive that has a higher spindle speed!

While Winchester-style drives have increased throughput hugely over the years, spindle speed remains a limiting factor; today's 3.5" drive's average seek time is hardly improved over the 3.5" drive of ten years ago, despite holding a thousand times as much data. Techniques such as native command queuing in newer SATA drives can re-order and optimized read/write operations to minimize this effect (and server grade SCSI drives have been doing this for a long time), but fundamentally, there isn't much getting around it. Minimizing seek time really does come down to spindle speed.

Veering slightly off topic.... I've recently had the opportunity to play with Western Digital's "VelociRaptor" 10,000rpm, 2.5" desktop drive. It's stunningly fast. It combines the advantages of high spindle speed, high areal density, and the short head seek distances inherent in small platters. This drive is pushing nearly 2/3 the data rate of my 2-disk 7200rpm RAID stripe in my Mac Pro, and *faster* access and improved overall system responsiveness. It's quite something. If we could get this sort of performance into a laptop drive, then the MacBook Pro could offer darn near the same performance of a desktop Mac!


espresso said...

For sequential workloads, yes, this is all relevant, but where drives are falling far, far behind is in seek times. Larger drives and greater areal density means more data on the drive, certainly, but the file size distribution and layout are HUGE factors.

If you want transactional performance, you're still going to want a larger number of smaller, faster drives; whereas, for sequential workloads, the new large, dense drives reign supreme.

jeffrey said...
This comment has been removed by the author.