Results: TRIM Testing With ULINK's DriveMaster 2012
We've been utilizing ULINK's DriveMaster 2012 software and hardware suite to introduce a new test for client drives. Using JEDEC's standardized 218A Master Trace, DriveMaster can turn a sequence of I/O (similar to our Tom's Hardware Storage Bench) into a TRIM test. JEDEC's trace is months and months of drive activity, day-to-day activities, and background operating system tasks.
ULINK strips out the read commands for this benchmark, leaving us with the write, flush, and TRIM commands to work with. Execute the same workload with TRIM support and without, and you end up with a killer metric for further characterizing drive behavior.
DriveMaster is used by most SSD manufacturers to create and perform specific measurements. It's currently the only commercial product that can create the scenarios needed to validate TCG Opal 2.0 security, though it's almost unlimited in potential applications. Much of the benefit tied to a solution like DriveMaster is its ability to diagnose bugs, ensure compatibility, and issue low-level commands. In short, it's very handy for the companies actually building SSDs. And if off-the-shelf scripts don't do it for you, make your own. There's a steep learning curve, but the C-like environment and command documentation gives you a fighting chance.
This product also gives us some new ways to explore performance. Testing the TRIM command is just the first example of how we'll be using ULINK's contribution to the Tom's Hardware benchmark suite.
On a 256 GB drive, each iteration writes close to 800 GB of data, so running the JEDEC TRIM test suite once on a 256 GB SSD generates almost 3.2 TB of mostly random writes (it's 75% random and 25% sequential). By the end of each run, over 37 million write commands are issued.
The first two tests employ DMA to access the storage, while the last two use Native Command Queuing. Since most folks don't use DMA with SSDs (aside from some legacy or industrial applications) we don't concern ourselves with those. It can take up to 96 hours to run one drive through all four runs, though faster drives can roughly cut the time in half. Because so much information is being written to an already-full SSD (the drive is filled before each test, and then close to 800 GB are written per iteration), SSDs that perform better under heavy load fare best. Without TRIM, on-the-fly garbage collection becomes a big contributor to high IOPS. With TRIM, 13% of space gets TRIM'ed, leaving more room for the controller to use for maintenance operations.
To avoid adding too much data, I have the average performance for each benchmarked SSD with and without TRIM support enabled. Displayed in IOPS, this helps us make comparisons more quickly.
The M5 Pro is toward the bottom of the chart, while SanDisk's PCIe-attached A110 is closer to the top. Plextor's M6e is faster though, particularly with the TRIM command active.
But I also want results for the instantaneous average of my TRIM test. How does the drive fare servicing writes with and without TRIM during each 100,000-command window? The purple line represents IOPS across the entire trace, without TRIM. The teal line is with TRIM. Each data point represents write IOPS per 100,000-command test reporting period.
The M6e's performance is improved quite a bit by TRIM. The troughs of the teal line don't dip quite as low, while the highs peak well over the purple indicator's levels. It's safe to conclude that the M6e is best-optimized for environments with TRIM enabled.
Were the reverse true, you'd see the purple line dominate, which is the case for Intel's SSD 730/S3500/S3700 and SanDisk's X210.
Just for fun, we pit the M6e against Plextor's celebrated M5 Pro. As we already know from the average IOPS chart, the outcome shouldn't even be close. And indeed, it isn't. There just isn't a lot to report from the M5 Pro. The lowest lows and highest highs aren't that far apart. Not so for the M6e, though. Its worst drops still tend to exceed the SATA drive's peaks.
We collect and report the total throughput of each drive in the NCQ with TRIM test. It's one number that helps capture overall performance in the test.