The SSD Diaries: Crucial's RealSSD C300by Anand Lal Shimpi on July 13, 2010 12:39 AM EST
TRIM and Performance over Time
When I first tested the C300 I noted that it fell victim to the same bug that plagued Intel’s X25-M: throw a bunch of random writes at the drive and it’ll get backed into a corner that it’ll never get out of. The scenario that you have to create to force the drive into this condition isn’t realistic at all, however that isn’t to say that over months or years of heavy use that you wouldn’t find yourself in the same situation. Either way, Crucial corrected the problem and spent weeks validating the firmware fix. Crucial did continue to sell drives during this period, which I wasn’t exactly happy about.
Either way the problem is now fixed with the 0002 firmware revision. It’s a destructive firmware update so you’ll lose any and all data on your drive after applying it. I also had a strange issue where the update had to be applied twice on my 256GB drive before it would work properly. Here’s what the C300’s performance looks like after being hammered for 20 minutes with random writes:
Ouch. Writes drop down to a dismal 20MB/s. But now if we TRIM the contents of the drive the performance curve looks like this:
Writes are at about 140MB/s and reads are in the low 200s. Everything is back to normal.
Now note that unlike the SandForce drives, Crucial’s controller/firmware combination will let the drive get into this state. Even if I throw randomly generated data at a SandForce drive the performance remains very high (the drive in the chart below is OCZ's Vertex 2):
Note that the lower line actually represents read performance - write speed is still up above 180MB/s.
The C300’s performance is simply not as resilient as what SandForce has to offer. For the majority of users this isn’t a problem. Typical desktop workloads shouldn’t get the drive into this state. Add in the efficiency of Crucial’s TRIM implementation and you should never see such a drop. However if your workload is atypical or particularly write intensive, the C300 may not be a good fit.
The C300 does perform background garbage collection. I’ve never particularly been a fan of idle GC simply because it fixes a problem after it’s created rather than avoiding the problem altogether. If you don’t have TRIM however (running RAID, Mac OS X, any Windows OS other than 7), idle GC is all you can rely on.
How well does it work? I subjected my 128GB C300 to almost the same torture test I mentioned above. I filled the drive to 80% of its total capacity and then threw random writes all over the drive for 20 minutes straight. Performance was predictably bad:
I left 20% of the drive empty because free space is needed for the idle GC to take effect. Here’s what the drive’s performance looked like after being idle for 3 hours:
Not exactly a drastic improvement. The idle GC just isn’t very aggressive. Compared to what Indilinx and SandForce have done, Crucial’s implementation just doesn’t cut it. For Windows 7 users running a single drive this shouldn't matter since you have TRIM. But if you're running RAID or another OS, the C300 isn't as desirable.