Delving Deeper

I had suspicions as to the nature of the problem based on my experience with it in my Mac Pro. The SuperTalent MLC drive in my machine would pause, most noticeably, randomly when I'd want to send an IM. What happens when you send an IM? Your logfile gets updated; a very small, random write to the disk. I turned to Iometer to simulate this behavior.

Iometer is a great tool for simulating disk accesses, you just need to know what sort of behavior you want to simulate. In my case I wanted to write tons of small files to the drive and look at latency, so I told Iometer to write 4KB files to the disk in a completely random pattern (100% random). I left the queue depth at 1 outstanding IO since I wanted to at least somewhat simulate a light desktop workload.

Iometer reports four results of importance: the number of IOs per second, the average MB/s, the average write latency and the maximum write latency. I looked at performance of four drives, the OCZ Core (Jmicron controller MLC), OCZ SLC (Samsung controller), Intel MLC (Intel controller) and the Seagate Momentus 7200.2 (a 7200RPM 2.5" notebook drive).

Though the OCZ core drive is our example, but please remember that this isn't an OCZ specific issue: the performance problems we see with this drive are apparent on all current MLC drives in the market that use a Jmicron controller with Samsung flash.

4KB, 100% random writes, IO queue depth 1 IOs per Second MB/s Average Write Latency Max Write Latency
OCZ Core (JMicron, MLC) 4.06 0.016MB/s 244ms 991ms
OCZ (Samsung, SLC) 109 0.43MB/s 9.17ms 83.2ms
Intel X25-M (Intel, MLC) 11171 43.6MB/s 0.089ms 94.2ms
Seagate Momentus 7200.2 106.9 0.42MB/s 9.4ms 76.5ms

 

Curiouser and curiouser...see a problem? Ignore the absolute ridiculous performance advantage of the Intel drive for a moment and look at the average latency column. The OCZ MLC drive has an average latency of 244 ms, that's over 26x the latency of the OCZ SLC drive and 25.9x the latency of a quick notebook drive. This isn't an MLC problem however, because the Intel MLC drive boasts an average latency of 0.09ms - the OCZ MLC drive has a 2700x higher latency!

Now look at the max latency column, the worst case scenario latency for the OCZ Core is 991ms! That's nearly a full second! This means that it takes an average of a quarter second to write a 4KB file to the drive and worst case scenario, a full second. We complain about the ~100 nanosecond trip a CPU has to take to main memory and here we have a drive that'll take nearly a full second to complete a task - totally unacceptable.

In order to find out if the latency is at all tied to the size of the write I varied the write size from 4KB all the way up to 128KB, but kept the writes 100% random. I'm only reporting latencies here:

100% random writes, IO queue depth 1 4KB 16KB 32KB 64KB 128KB
OCZ Core (JMicron, MLC) 244ms 243ms 241ms 243ms 247ms
OCZ (Samsung, SLC) 9.17ms 14.5ms 21.2ms 28ms 28.5ms
Intel X25-M (Intel, MLC) 0.089ms 0.23ms 0.44ms 0.84ms 1.73ms
Seagate Momentus 7200.2 9.4ms 8.95ms 9.14ms 9.82ms 12.1ms

 

All the way up to 128KB the latency is the same, 0.25s on average and nearly a second worst case for the OCZ Core and other similar MLC drives. If it's not the file size, perhaps it's the random nature of the writes?

For this next test I varied the nature of the writes, I ran the 4KB write test with a 100% sequential workload, 90% sequential (10% random) and 50% sequential (50% random):

4KB writes, IO queue depth 1 100% Sequential/0% Random 90% Sequential/10% Random 50% Sequential/50% Random 0% Sequential/100% Random
OCZ Core (JMicron, MLC) 0.36ms 25.8ms 130ms 244ms
OCZ (Samsung, SLC) 0.16ms 1.97ms 5.19ms 9.17ms
Intel X25-M (Intel, MLC) 0.09ms 0.09ms 0.09ms 0.089ms
Seagate Momentus 7200.2 0.16ms 0.94ms 4.35ms 9.4ms

 

The average latency was higher on the OCZ Core (MLC) than the rest of the drives, but still manageable at 0.36ms when I ran the 100% sequential test, but look at what happened in the 90% sequential test. With just 10% random writes the average latency jumped to 25.8ms, that's 13x the latency of the OCZ SLC drive. Again, this isn't an MLC issue as the Intel drive does just fine. Although I left it out of the table to keep things simpler, the max latency in the 90/10 test was 983ms for the OCZ Core drive once again. The 90/10 test is particularly useful because it closely mimics a desktop write pattern, most writes are sequential in nature but a small percentage (10% or less) are random in nature. What this test shows us is that even 10% of random writes is all it takes to bring the OCZ Core to its knees.

The problem gets worse as you increase the load on the drive. Most desktop systems have less than 1 outstanding IO during normal operation, but under heavy multitasking you can see the IO queue depth hit 4 or 5 IOs for writes. Going much above that and you pretty much have to be in a multi-user environment, either by running your machine as a file server or by actually running a highly trafficked server. I ran the same 100% random, 4KB write test but varied the number of outstanding IOs from 1 all the way up to 64. Honestly, I just wanted to see how bad it would get:

This is just ridiculous. Average write latency climbs up to fifteen seconds, while max latency peaked at over thirty seconds for the JMicron based MLC drives. All this graph tells you is that you shouldn't dare use one of these drives in a server, but even at a queue depth of four the max latency is over two seconds which is completely attainable in a desktop scenario under heavy usage. I've seen this sort of behavior first hand under OS X with the SuperTalent MLC drive, the system will just freeze for anywhere from a fraction of a second to over a full second while a write completes in the background. The write that will set it off will often times be something as simple as writing to my web browser's cache or sending an IM, it's horribly frustrating.

I did look at read performance, and while max latency was a problem (peaking at 250ms) it was a fairly rare case, average latency was more than respectable and comparable to the SLC drives. This seems to be a write issue. Let's see if we can make it manifest itself in some real world tests.

Enter the Poorly Designed MLC The Generic MLC SSD Problem in the Real World
Comments Locked

96 Comments

View All Comments

  • aeternitas - Thursday, September 11, 2008 - link

    Wow.

    #1 Meaning; Great read.
    #2 Meaning; Why do you not use World of Warcraft in your testings more? This game still has huge system requirements on absolute full settings in crouded areas. No one is getting 60fps in that game in Shatt on a saterday night 16xAA/AF full distance view. Everything maxed running a high resolution. Also, the disk access of this game may not be as much as Crysis, but its far FAR more prolonged as people play this game for a matter of years, instead of a handfull of months tops.
  • hoohoo - Wednesday, September 10, 2008 - link

    What?! Google Chrome Launch Time? Is this a new benchmark? The world was waiting for that test I can tell ya! Did Google slip a little something in your pocket?
  • Ph0b0s - Wednesday, September 10, 2008 - link

    Sorry if this repeats what anyone else has said, but I think this is the best harddisk review I have seen. All the other hdd reviews I have read though, all go into detail about how many mb/s the drive can transfer and what the access time is, I/O performance etc. This is all very nice, but all we really care about is how does the hdd perform in real world apps and games in comparision to other drives. How much faster is my browser going to load.

    And that is why I was so impressed with this review. I realise it probably took more time to create this review, but it was well worth it. You can see how much the drives in the comparision compare to the amount of money you will spend instead of having to extrapolate from throughput benchmarks.

    I would feel a lot more confident in putting down money on the X25 after this review. Because I can see what the benefit I would get after in comparsion to other drives. Though the X25 needs to be another $100 dollars cheaper...

    Anyway, please more hdd reviews like this...
  • bruto - Wednesday, September 10, 2008 - link

    Anand, could you please post map load times for R6 Vegas 2 using
    these drives?
    That game was killing me, and I'd like to know just how much
    happiness is around the corner :)
  • FFFFFF - Tuesday, September 9, 2008 - link

    I am very familiar with the tech works of SSDs and it is interesting to know of the security risk that involves the technology. http://www.techworld.com/SECURITY/NEWS/index.cfm?n...">http://www.techworld.com/SECURITY/NEWS/...cfm?news...
    This is one reason why I am not going to upgrade to SSD just yet till they figure out a more secure encryption.
  • cokelight - Tuesday, September 9, 2008 - link

    RE: PLEASE LEARN HOW TO USE COMMAS! by ggordonliddy, 19 hours ago

    You are just making it clear that you do not have a firm grasp of English. You are afraid of those who criticize poor grammar, because you know that you yourself will be exposed for the fraudulent pustule that lies beneath your slimy veneer.

    I have a life. I'm just sick of illiterate authors. Just because it is a tech site is no excuse for extremely poor writing skills. I'm talking about skills that should be completely mastered before being allowed to graduate from elementary school.

    ^
    Take your elitism elsewhere. If you actually practiced what you preached then you'd note your own comma abuse:

    "You are afraid of those who criticize poor grammar, because you know that you yourself will be exposed for the fraudulent pustule that lies beneath your slimy veneer."

    The second clause is dependent. Therefore, it does not necessitate a comma.
  • aeternitas - Thursday, September 11, 2008 - link

    Use the reply link.
  • xenon83 - Tuesday, September 9, 2008 - link

    "Do keep in mind though, the numbers we're talking about here are ridiculously low - even 900 µs to write to MLC flash is much faster than writing to a mechanical hard disk."
    But when it comes to random writes ssd's in general - this intel ssd included - fails miserably.
    http://www.alternativerecursion.info/?p=106">http://www.alternativerecursion.info/?p=106
  • johncl - Wednesday, September 10, 2008 - link

    Yes as the other poster say, the Intel drive have solved the issues with small random writes that the OZC and other MLC drives so far have been suffering from. If you read the whole article thoroughly you will see that clearly.

    Lets hope OCZ can come up with a better controller in their next generation MLC SSDs. We really need the competition here to bring those prices down, the Intel drive is a tad too expensive atm imo.
  • balotz - Tuesday, September 9, 2008 - link

    Random writes are exactly as fast as sequential writes on this Intel SSD (10,000 random 4k writes per second).

    The article you referenced uses data from an SSD which appears to suffer from issues relating to the JMicron controller.

    The Intel SSD is obviously not affected, this is clearly shown by the numbers in this very review!

Log in

Don't have an account? Sign up now