Performance Consistency

In our Intel SSD DC S3700 review Anand introduced a new method of characterizing performance: looking at the latency of individual operations over time. The S3700 promised a level of performance consistency that was unmatched in the industry, and as a result needed some additional testing to show that. The reason we don't have consistent IO latency with SSDs is because inevitably all controllers have to do some amount of defragmentation or garbage collection in order to continue operating at high speeds. When and how an SSD decides to run its defrag and cleanup routines directly impacts the user experience. Frequent (borderline aggressive) cleanup generally results in more stable performance, while delaying that can result in higher peak performance at the expense of much lower worst-case performance. The graphs below tell us a lot about the architecture of these SSDs and how they handle internal defragmentation.

To generate the data below we take a freshly secure erased SSD and fill it with sequential data. This ensures that all user accessible LBAs have data associated with them. Next we kick off a 4KB random write workload across all LBAs at a queue depth of 32 using incompressible data. We run the test for just over half an hour, nowhere near what we run our steady state tests for but enough to give a good look at drive behavior once all spare area fills up.

We record instantaneous IOPS every second for the duration of the test and then plot IOPS vs. time and generate the scatter plots below. Each set of graphs features the same scale. The first two sets use a log scale for easy comparison, while the last set of graphs uses a linear scale that tops out at 40K IOPS for better visualization of differences between drives.

The high level testing methodology remains unchanged from our S3700 review. Unlike in previous reviews however, we vary the percentage of the drive that gets filled/tested depending on the amount of spare area we're trying to simulate. The buttons are labeled with the advertised user capacity had the SSD vendor decided to use that specific amount of spare area. If you want to replicate this on your own all you need to do is create a partition smaller than the total capacity of the drive and leave the remaining space unused to simulate a larger amount of spare area. The partitioning step isn't absolutely necessary in every case but it's an easy way to make sure you never exceed your allocated spare area. It's a good idea to do this from the start (e.g. secure erase, partition, then install Windows), but if you are working backwards you can always create the spare area partition, format it to TRIM it, then delete the partition. Finally, this method of creating spare area works on the drives we've tested here but not all controllers are guaranteed to behave the same way.

The first set of graphs shows the performance data over the entire 2000 second test period. In these charts you'll notice an early period of very high performance followed by a sharp dropoff. What you're seeing in that case is the drive allocating new blocks from its spare area, then eventually using up all free blocks and having to perform a read-modify-write for all subsequent writes (write amplification goes up, performance goes down).

The second set of graphs zooms in to the beginning of steady state operation for the drive (t=1400s). The third set also looks at the beginning of steady state operation but on a linear performance scale. Click the buttons below each graph to switch source data.

  OCZ Vertex 460 240GB OCZ Vector 150 240GB Corsair Neutron 240GB Sandisk Extreme II 480GB Samsung SSD 840 Pro 256GB
Default
25% OP

Performance consistency is more or less a match with the Vector 150. There is essentially no difference, only some slight variation which may as well be caused by the nature of how garbage collection algorithms work (i.e. the result is never exactly the same). 

  OCZ Vertex 460 240GB OCZ Vector 150 240GB Corsair Neutron 240GB SanDisk Extreme II 480GB Samsung SSD 840 Pro 256GB
Default
25% OP

 

  OCZ Vertex 460 240GB OCZ Vector 150 240GB Corsair Neutron 240GB SanDisk Extreme II 480GB Samsung SSD 840 Pro 256GB
Default
25% OP

TRIM Validation

To test TRIM, I first filled all user-accessible LBAs with sequential data and continued with torturing the drive with 4KB random writes (100% LBA, QD=32) for 60 minutes. After the torture I TRIM'ed the drive (quick format in Windows 7/8) and ran HD Tach to make sure TRIM is functional.

And TRIM works. The HD Tach graph also shows the impact of OCZ's performance mode, although in a negative light. Once half of the LBAs have been filled, all data has to be reorganized. The result is a decrease in write performance as the drive is reorganizing the existing data at the same time as HD Tach is writing to it. Once the reorganization process is over, the performance will recover close to the original performance.

Introduction, The Drive & The Test AnandTech Storage Bench 2013
POST A COMMENT

68 Comments

View All Comments

  • blanarahul - Wednesday, January 22, 2014 - link

    The 250 GB 840 EVO achieves 260 MB/s write speeds. 120 GB EVO achieves 140 MB/s. 500 GB EVO should achieve 520 MB/s bit it only achieves 420 MB/s. Why?? Reply
  • blanarahul - Wednesday, January 22, 2014 - link

    I am talking about non-Turbowrite speeds btw. Reply
  • rufuselder - Thursday, October 09, 2014 - link

    OCZ Vertex 460 is one of the worst options for storage out there in my opinion (each time I try it out, I get just as disappointed). /Rufus from http://www.consumertop.com/best-computer-storage-g... Reply
  • DanNeely - Wednesday, January 22, 2014 - link

    Having more NAND dies to multiiplex IO over only helps for some parts of the write process; and the more of them you have the less adding still more will help because other factors dominate more of the total time (Amdahl's law). As a result going to 500 from 250 gives less of a percentage boost than going to 250 from 120.

    I suspect in the case of the 500, because all the mid/top end drives are clustering in a narrow performance band, that SATA III bottlenecking is coming into play in addition to limitations within the SSD itself.
    Reply
  • blanarahul - Wednesday, January 22, 2014 - link

    Gee thanks. BTW, SATA III maxes out around 540 MB/s for writes. So it's a controller/firmware limitation. Reply
  • Gigaplex - Wednesday, January 22, 2014 - link

    It's not that simple. You don't have to hit maximum utilisation to start feeling the limitations of SATA III. Reply
  • lmcd - Thursday, January 23, 2014 - link

    I thought there weren't more packages but rather larger packages? If I'm wrong then yeah it's probably SATA limitations but if not it's because it's the same bandwidth allocated per packages as previously. Reply
  • lmcd - Thursday, January 23, 2014 - link

    *weren't more packages once 250 GB is met, in the case of this model. Reply
  • Novuake - Wednesday, January 22, 2014 - link

    Simple. Diminishing returns + limitations of SATA III. Reply
  • Shadowmaster625 - Wednesday, January 22, 2014 - link

    It is amazing Toshiba would sully their own name by placing it next to "OCZ". Reply

Log in

Don't have an account? Sign up now