Results: Random 4 KB Performance
We turn to Iometer as our synthetic metric of choice for testing 4 KB random performance. Technically, "random" translates to a consecutive access that occurs more than one sector away. On a mechanical hard disk, this can lead to significant latencies that hammer performance. Spinning media simply handles sequential accesses much better than random ones, since the heads don't have to be physically repositioned. With SSDs, the random/sequential access distinction is much less relevant. Data are put wherever the controller wants it, so the idea that the operating system sees one piece of information next to another is mostly just an illusion.
4 KB Random Reads
Performance-testing SSDs often emphasizes 4 KB random reads, and for good reason. Most system accesses are both small and random. Moreover, read performance is arguably more important than writes when you're talking about typical client workloads.
Of the SSDs we've tested these past few months, the two pushing the most 4 KB read I/Os are the 1 TB 840 EVO and Silicon Motion's reference platform. Both exceed 10,000 IOPS at a queue depth of one. Is there a big difference between a drive capable of 8,000 IOPS versus one that hits 10,000? Not really, to be frank. But this Silicon Motion SSD and Samsung's not-yet-available 840 EVO 1 TB are optimized for performance at low queue depths, and that's a good thing on the desktop.
As the number of outstanding commands goes up, it's clear that the 840 Pro and Extreme II outclass the four-channel SM2246EN (though not by much). The Toggle-mode NAND inside is firing quickly, and we get to 80,000 IOPS at a queue depth of 32.
4 KB Random Writes
Random write performance is also very important, without question. Early SSDs didn't do well in this discipline, seizing up even in lightweight workloads. Newer SSDs wield more than 100x the performance of drives from 2007, but there's a point of diminishing returns in client environments. When you swap a hard drive out for solid-state storage, your experience improves. Load times, boot times, and system responsiveness all get better. If called upon, your SSD-equipped system could handle a lot more I/O than the spinning media you had in there before. With consumer workloads, it's more about getting to those operations faster, not necessarily handling more of them.
In newer drives, 4 KB writes tend to demonstrate much higher throughput than 4 KB reads at a queue depth of one. Notice that the 840 EVO 120 GB stumbles a bit right out of the gate, while the other SSDs range from high 20,000 to low 30,000 IOPS. From there, the 840 Pro is a frickin' rocket ship, while Silicon Motion's SM2246EN shows up in a somewhat distant second place. The Extreme II would have taken that spot if it wasn't for the complications attributable to our 16 GB LBA and the Extreme II's nCache system.
Here's a break-down of the maximum observed 4 KB sequential read and write performance with Iometer:
These are the maximum 4 KB random read and write numbers we saw during our Iometer testing. We're sorting the list by combined read and write IOPS.
A saturation test consists of writing to a drive for a specific period of time with a defined workload. Technically, this is an enterprise-class write saturation test, where the entire LBA space of the SSD is utilized at a high-queue-depth random write.
We're showing 10 hours of the write saturation test, which is more than enough for a 128 GB drive. Silicon Motion's submission is quite fast, so the first capacity fill happens quickly. After that, it stabilizes around 6,000 IOPS.
The bottom half of our chart takes a small time slice from the 10-hour run and breaks it down second by second. Suddenly, we see that reality is a little less consistent than the top part of the chart. The inset shows 25 minutes. And out of those 1500 seconds, 25% are below 3,000 IOPS, while the other 75% are 3,000 IOPS or more. Every few seconds, the drive frees up a few extra blocks, and the result is one second with much higher throughput. Most of the time, we get about 3,200 IOPS, but when you average it all out over more time, that's when we see the 6,000ish number.