Storage performance

I've been thinking about storage a lot lately, since I have to buy some pretty soon.

Did you know that there is a factor-of-40 difference in speed among common storage devices?

At the very slow end of the scale is any USB 2.0 device. These all top out at about 50 MB/s, the limiting factor being the speed of the USB 2.0 interface. If you have any USB 2.0 storage that you actually use, please upgrade now. Then we have FireWire devices at about 80 MB/s. Remember when FireWire used to be fast? Those days are gone.

Next up is a surprise: any NAS device. If you're using 100 megabit Ethernet then NAS is totally hopeless, but even with gigabit Ethernet you're limited by the Ethernet cable to about 100 MB/s. It doesn't matter how hot the NAS device itself is. You might think that NAS is great for storing photos and music and such (how many times have you heard "just install some drives in a Linux box and make a cheap NAS") but the performance is pretty poor.

Single hard drives connected to a SATA interface clock in around 100-200 MB/s. Hard drives are another "used to be fast" technology. The SATA interface itself goes up to about 600 MB/s, but the limiting factor is the hard drive's rotational speed and storage density. In general, higher capacity drives are faster than low-capacity drives, and drives with high rotational speeds are faster than drives with low rotational speeds. Fancy enterprise-class hard drives are faster than cheap laptop hard drives. But they're all running in the slow lane these days.

However, if you gather a bunch of hard drives together into an array, you can get some decent speed. With an array of four hard drives you can hit about 500 or 600 MB/s because you're reading and writing everything in parallel. Now you need to figure out how to hook the array up to your computer. You can use SATA (in eSATA form) or USB 3.0, both of which are pretty common.

For real speed, though, you need SSD. SSDs basically pick up where hard drives leave off; a slow SSD is like a fast hard drive. With an array of SSDs you can reach speeds of 1 GB/s or more. At these speeds, SATA and USB 3.0 don't cut it anymore. You need Thunderbolt, or better yet, Thunderbolt 2.

But even Thunderbolt 2 can't handle the fastest storage out there: PCIe SSDs. These are SSDs that connect directly to the PCIe (PCI Express) bus. Transfer speeds exceed 2 GB/s: Intel recently released a PCIe SSD that hits 2.8 GB/s. You can literally load an entire movie off this device in one second. There's little reason to buy a new computer without one of these. They're more expensive than hard drives, but not that expensive when you consider that they're ten times faster! And even if you have multiple terabytes of data, you probably don't need it all online at once. Buy a PCIe SSD for stuff you access the most and use a slower, cheaper drive for lesser-used stuff. Apple's "fusion drive" will do this automatically for you.

Comments

Popular posts from this blog

UUIDs as primary keys

Scala and Kotlin

Generating thumbnail images: AffineTransformOp gotchas