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
POST A COMMENT

97 Comments

View All Comments

  • aeternitas - Thursday, September 11, 2008 - link

    Converting all your DVDs to divx is a silly idea. Why would you want to lose dynamic range and overall quality (no matter the settings) for a smaller movie size when 1TB costs 130$?

    SSD = Preformance (when done right)
    HHD = Storage.
    Reply
  • johncl - Tuesday, September 09, 2008 - link

    Noise isnt a big problem on a 3.5" in a media pc as the other poster states. But heat can be a problem, especially if you plan on passively cool everything else in the computer. An SSD will solve both problems, but only if the SSD is the only disk in the system. From what I understand you want to have both in yours which makes sense since movies/music occupy a lot of space. In that case you will not experience any improved performance since the media would have to be read off the mechanical drive anyway.

    Your best bet would be to build yourself a small media server and put all noisy hot mechanical disks in that and use small SSDs on your media pc (and indeed any other pc). That way you get the best of both worlds, fast response on application startup/OS boot, silent and no heat - as well as a library of media. You would probably have to use a media frontend that caches information about all media on your server though so it doesnt have to wait on server harddisk spinup etc for every time you browse your media. Perhaps Vista Media Center already does this?
    Reply
  • mindless1 - Thursday, September 11, 2008 - link

    An SSD will not "solve" a heat problem. The hard drive adds only a small % of heat to a system and being lower heat density it has one of the less difficult requirements for cooling.


    Speed of the HTPC shouldn't be an issue, unlike a highly mixed use desktop scenario all one needs is to use stable apps without memory leaks then they can hibernate to get rid of the most significant boot-time waiting. Running the HTPC itself the OS performance difference would be trivial and the bitrate for the videos is easily exceeding by either storage type or an uncongested LAN.
    Reply
  • piroroadkill - Tuesday, September 09, 2008 - link

    To be honest most decent HDDs don't make significant noise anyway, even further quelled by grommets or suspending the drive.

    Also, the reads will occur on the drive you're reading the movie from - so if you plan to use an external HDD as the source, this will make no difference whatsoever.
    Reply
  • dickeywang - Tuesday, September 09, 2008 - link

    Imaging you have a 80GB SSD, with 75GB been already occupied by some existing data (OS, installed software, etc), so you only have 10GB space left, now lets say you write and then erase 100GB/day on this SSD, shouldn't the 100GB/day data all be written on the 5GB space? So each cell would be written 100GB/5GB=20cycle/day, so you will reach the 10000cycle/cell limit within less than 18months.
    Can someone tell me if the analysis above is correct? I guess when they say "100GB/day for 5 years", they should really take into account how much storage space that is un-occupied on the SSD, right?
    Reply
  • johncl - Tuesday, September 09, 2008 - link

    A good wear leveling algorithm can move about "static" blocks so that their cells are also available for wear. I do not know if the current implementations use this though. Anyone know this? Reply
  • Lux88 - Tuesday, September 09, 2008 - link

    I remember reading a number of SSD reviews, but it's first time I read about the pauses. Indeed, quick search revealed 5 articles, starting from May 2007, but the conclusions only mentioned a high price and a small capacity as drawbacks. Nothing about freezing nor pauses. Some of these 5 probably were SCL-drives, some MLC.

    It's funny how a simple multitasking test can reveal an Achille's heel of large group of products, just when a product appears that doesn't suffer from this particular drawback.

    Overall good article and good info. So good that all the previous articles on the matter of SSDs on this site seem bad in comparison. Thanks for the info anyway, better late than never ;).
    Reply
  • eva2000 - Tuesday, September 09, 2008 - link

    If the OCZ Core controller does indeed have 16KB on chip cache for read/writes maybe that's the problem as OCZ Core pdf states for their SSD

    "each page contains 4 Kbytes of data, however, because of the parallelism at the back end of the controller, every access includes simultaneous opening of 16 pages for a total accessible data contingent of 64 Kbytes"

    ????
    Reply
  • araczynski - Tuesday, September 09, 2008 - link

    looks quite promising. maybe within about 2 years they'll get the bugs worked out, a more realistic price, and an extended life span, and i'll replace my regular drives. Reply
  • yyrkoon - Tuesday, September 09, 2008 - link

    "No one really paid much attention to Intel getting into the SSD (Solid State Disk) business. We all heard the announcements, we heard the claims of amazing performance, but I didn't really believe it. After all, it was just a matter of hooking up a bunch of flash chips to a controller and putting them in a drive enclosure, right? "

    You mean you did not pay attention? I know I did, because Intel has always been serious with things of this nature. That and they are partnered with Crucial(Micron) right ?. . . Now if this was some attempt at sarcasm, or a joke . . .

    Seriously, and I mean VERY seriously, I was excited when Anandtech 'reported' that Intel/Micron were going to get into the SSD market. After all affordable SSDs are very desirable, never mind affordable/very good performing SSDs. That, and I knew if Intel got into the market, that we would not have these half-fast implementations that we're seeing now from these so called 'SSD manufactures'. Well, even Intel is not impervious to screw ups, but they usually learn by their mistakes quickly, and correct them. Micron (most notably Crucial) from my experience does not like to be anything but the best in what they do, so to me this seemed like a perfect team, in a perfect market. Does this mean I think Micron is the best ? Not necessarily. Lets me just say that after years of dealing with Crucial, I have a very high opinion of Crucial/Micron.

    "What can we conclude here? SSDs can be good for gaming, but they aren't guaranteed to offer more performance than a good HDD; and Intel's X25-M continues to dominate the charts."

    Are we reading the same charts ? These words coming from the mouth of someone who sometimes mentions even the most minuscule performance difference as being a 'clear winner' ? Regardless, I think it *is* clear to anyone willing to pay attention to the charts that the Intel SSD "dominates". Now whether the cost of admission is worth this performance gain is another story altogether. I was slightly surprised to see a performance gain in FPS just by changing HDDS, and to be honest I will remain skeptical. I suppose that some data that *could* effect FPS performance could be pulled down while the main game loop is running.

    Either way, this is a good article, and there was more than enough information here for me(a technology junky). Now lets hope that Intel lowers the cost of these drives to a more reasonable price(sooner rather than later). The current price arrangement kind of reminds me of CD burner prices years ago.
    Reply

Log in

Don't have an account? Sign up now