AnandTech Storage Bench 2013

When Anand built the AnandTech Heavy and Light Storage Bench suites in 2011 he did so because we did not have any good tools at the time that would begin to stress a drive's garbage collection routines. Once all blocks have a sufficient number of used pages, all further writes will inevitably trigger some sort of garbage collection/block recycling algorithm. Our Heavy 2011 test in particular was designed to do just this. By hitting the test SSD with a large enough and write intensive enough workload, we could ensure that some amount of GC would happen.

There were a couple of issues with our 2011 tests that we've been wanting to rectify however. First off, all of our 2011 tests were built using Windows 7 x64 pre-SP1, which meant there were potentially some 4K alignment issues that wouldn't exist had we built the trace on a system with SP1. This didn't really impact most SSDs but it proved to be a problem with some hard drives. Secondly, and more recently, we've shifted focus from simply triggering GC routines to really looking at worst-case scenario performance after prolonged random IO.

For years we'd felt the negative impacts of inconsistent IO performance with all SSDs, but until the S3700 showed up we didn't think to actually measure and visualize IO consistency. The problem with our IO consistency tests is that they are very focused on 4KB random writes at high queue depths and full LBA spans–not exactly a real world client usage model. The aspects of SSD architecture that those tests stress however are very important, and none of our existing tests were doing a good job of quantifying that.

We needed an updated heavy test, one that dealt with an even larger set of data and one that somehow incorporated IO consistency into its metrics. We think we have that test. The new benchmark doesn't even have a name, we've just been calling it The Destroyer (although AnandTech Storage Bench 2013 is likely a better fit for PR reasons).

Everything about this new test is bigger and better. The test platform moves to Windows 8 Pro x64. The workload is far more realistic. Just as before, this is an application trace based test–we record all IO requests made to a test system, then play them back on the drive we're measuring and run statistical analysis on the drive's responses.

Imitating most modern benchmarks Anand crafted the Destroyer out of a series of scenarios. For this benchmark we focused heavily on Photo editing, Gaming, Virtualization, General Productivity, Video Playback and Application Development. Rough descriptions of the various scenarios are in the table below:

AnandTech Storage Bench 2013 Preview - The Destroyer
Workload Description Applications Used
Photo Sync/Editing Import images, edit, export Adobe Photoshop CS6, Adobe Lightroom 4, Dropbox
Gaming Download/install games, play games Steam, Deus Ex, Skyrim, Starcraft 2, BioShock Infinite
Virtualization Run/manage VM, use general apps inside VM VirtualBox
General Productivity Browse the web, manage local email, copy files, encrypt/decrypt files, backup system, download content, virus/malware scan Chrome, IE10, Outlook, Windows 8, AxCrypt, uTorrent, AdAware
Video Playback Copy and watch movies Windows 8
Application Development Compile projects, check out code, download code samples Visual Studio 2012

While some tasks remained independent, many were stitched together (e.g. system backups would take place while other scenarios were taking place). The overall stats give some justification to what we've been calling this test internally:

AnandTech Storage Bench 2013 Preview - The Destroyer, Specs
  The Destroyer (2013) Heavy 2011
Reads 38.83 million 2.17 million
Writes 10.98 million 1.78 million
Total IO Operations 49.8 million 3.99 million
Total GB Read 1583.02 GB 48.63 GB
Total GB Written 875.62 GB 106.32 GB
Average Queue Depth ~5.5 ~4.6
Focus Worst-case multitasking, IO consistency Peak IO, basic GC routines

SSDs have grown in their performance abilities over the years, so we wanted a new test that could really push high queue depths at times. The average queue depth is still realistic for a client workload, but the Destroyer has some very demanding peaks. When we first introduced the Heavy 2011 test, some drives would take multiple hours to complete it; today most high performance SSDs can finish the test in under 90 minutes. The Destroyer? So far the fastest we've seen it go is 10 hours. Most high performance SSDs we've tested seem to need around 12–13 hours per run, with mainstream drives taking closer to 24 hours. The read/write balance is also a lot more realistic than in the Heavy 2011 test. Back in 2011 we just needed something that had a ton of writes so we could start separating the good from the bad. Now that the drives have matured, we felt a test that was a bit more balanced would be a better idea.

Despite the balance recalibration, there is just a ton of data moving around in this test. Ultimately the sheer volume of data here and the fact that there's a good amount of random IO courtesy of all of the multitasking (e.g. background VM work, background photo exports/syncs, etc...) makes the Destroyer do a far better job of giving credit for performance consistency than the old Heavy 2011 test. Both tests are valid; they just stress/showcase different things. As the days of begging for better random IO performance and basic GC intelligence are over, we wanted a test that would give us a bit more of what we're interested in these days. As Anand mentioned in the S3700 review, having good worst-case IO performance and consistency matters just as much to client users as it does to enterprise users.

We are reporting two primary metrics with the Destroyer: average data rate in MB/s and average service time in microseconds. The former gives you an idea of the throughput of the drive during the time that it was running the Destroyer workload. This can be a very good indication of overall performance. What average data rate doesn't do a good job of is taking into account response time of very bursty (read: high queue depth) IO. By reporting average service time we heavily weigh latency for queued IOs. You'll note that this is a metric we've been reporting in our enterprise benchmarks for a while now. With the client tests maturing, the time was right for a little convergence.

AT Storage Bench 2013 - The Destroyer (Data Rate)

Update: It appears that something was off in the first run as the 1TB scored 261.52MB/s when I retested it.

I'm not sure if I'm comfortable with the score above. There are no other benchmarks that would indicate the EVO mSATA to be over 20% faster than the 2.5" EVO, so I'm thinking there has been some kind of an error in the test. Unfortunately I didn't have time to rerun the test because The Destroyer takes roughly 12 hours to run and another eight or so hours to be analyzed. However, I managed to run it on the 500GB EVO mSATA and as the graph above shows, its performance is on-par with the 2.5" EVO. I'll rerun the test on the 1TB sample once I get back and will update this based on its output.

AT Storage Bench 2013 - The Destroyer (Service Time)

Performance Consistency & TRIM Validation Random & Sequential Performance
Comments Locked

65 Comments

View All Comments

  • Chubblez - Thursday, January 9, 2014 - link

    I have 8 5 shelf SAN's (EMC AX4-5f) all full of 1 and 2TB drives that would disagree with you.

    I also have 4 256G EVO's that get hammered pretty hard in an HP server, but I can't speak to the very long term effects. Initial data tells me your wrong on that as well.
  • Death666Angel - Sunday, January 12, 2014 - link

    I have 8 2TB drives since October 2011 running in 2 RAID 5 in my file server (consumer grade Samsung, WD, Hitachi). I have 2 1TB 2.5" drives running since 2 years in my desktop. I have a 1TB and a 1.5TB 3.5" drive for well over 4 years in external enclosures. Not one failed. So let's pit anecdotal evidence against anecdotal evidence, shall we?
  • dgingeri - Thursday, January 9, 2014 - link

    I'd like to see Samsung put out a 500Gb or 1TB SSD with a m.2 PCIe connection. That with an adapter for two m.2 PCIe drives on a PCIe x4 card would make my year. I'd finally be able to get all the drives out of my system and bring it down to just motherboard, cards, H100, and power supply.
  • romrunning - Thursday, January 9, 2014 - link

    Why does the Samsung 840 Pro score really badly in the "Destroyer" tests, but are at the top of pretty much every other benchmark shown here?
  • Kristian Vättö - Thursday, January 9, 2014 - link

    Because it only has 7% OP by default, whereas most drives have 12% nowadays. In steady-state even small differences in OP can play a major role.
  • blanarahul - Thursday, January 9, 2014 - link

    Do you think it would be beneficial to 'not' have Turbowrite at or above 500 GB and focus more on parallism?? I ask this because a 250 GB 840 Evo achieves about 260 MB/s after it runs out of TW cache. So I would expect the 500 GB or above Evo to atleast reach 500 MB/s.
  • Solid State Brain - Friday, January 10, 2014 - link

    Question: do Samsung 840 EVO SSDs have less OP than the previous 840 ones, since a percentage of the reserved space is now used for the fixed SLC cache area/TurboWrite?
    With trim enabled, that should not be a problem (as it makes the drive have "dynamic OP" with free space), but under intense workloads it might, if it's the case.
  • Kristian Vättö - Friday, January 10, 2014 - link

    Technically yes. The 840 actually has slightly better IO consistency, which the higher OP explains.

    https://dl.dropboxusercontent.com/u/128928769/IO%2...

    (The title reads Intel DC S3700 but that's because I use it's graph as a basis of other graphs to guarantee that they're all the same size)
  • romrunning - Friday, January 10, 2014 - link

    That's interesting. I guess that means if you manually over-provision the 840 Pro, then it should dominate the Destroyer benchmark as well. It would be nice to test that scenario out.
  • Kristian Vättö - Friday, January 10, 2014 - link

    Due to the nature of the Destroyer, it's unfortunately not possible to assign the test for a certain LBA range (i.e. add OP).

Log in

Don't have an account? Sign up now