Mixed Random Read/Write Performance

Mixed read/write tests are also a new addition to our test suite. In real world applications a significant portion of workloads are mixed, meaning that there are both read and write IOs. Our Storage Bench benchmarks already illustrate mixed workloads by being based on actual real world IO traces, but until now we haven't had a proper synthetic way to measure mixed performance. 

The benchmark is divided into two tests. The first one tests mixed performance with 4KB random IOs at six different read/write distributions starting at 100% reads and adding 20% of writes in each phase. Because we are dealing with a mixed workload that contains reads, the drive is first filled with 128KB sequential data to ensure valid results. Similarly, because the IO pattern is random, I've limited the LBA span to 16GB to ensure that the results aren't affected by IO consistency. The queue depth of the 4KB random test is three.

Again, for the sake of readability, I provide both an average based bar graph as well as a line graph with the full data on it. The bar graph represents an average of all six read/write distribution data rates for quick comparison, whereas the line graph includes a separate data point for each tested distribution. 

Iometer - Mixed 4KB Random Read/Write

Quite surprisingly the SM951 and Samsung drives in general don't do very well with mixed data.

Samsung SM951 512GB

The reason lies in the fact that the performance of Samsung drives plummets when the share of writes is increased. At 80/20 read/write, the Samsung drives manage to do pretty well, but after that the performance declines to about 40MB/s. What's odd is that the performance is also bad with 100% writes, whereas with other drives we usually see a spike here. I'm guessing there's some garbage collection going on here that causes the performance degradation. 

Mixed Sequential Read/Write Performance

The sequential mixed workload tests are also tested with a full drive, but I've not limited the LBA range as that's not needed with sequential data patterns. The queue depth for the tests is one.

Iometer - Mixed 128KB Sequential Read/Write

With 128KB sequential data, however, the SM951 is the king of the hill. There's a clear difference between PCIe and SATA based drives, although it's worthy to note that the difference is mostly due to PCIe drives having much higher throughput at 100% reads and writes (i.e. the infamous bathtub curve). 

Samsung SM951 512GB
Sequential Performance ATTO & AS-SSD
Comments Locked

128 Comments

View All Comments

  • Makaveli - Tuesday, February 24, 2015 - link

    I would love to see two Samsung 850Pro 256GB drives in Raid 0 vs this.
  • BPB - Wednesday, February 25, 2015 - link

    I was really hoping to see this compared to a RAID 0 setup. I'm considering getting one of these or a competitor's version in 2 or 3 months, but I'm also considering just getting another Samsung SSD and creating a RAID 0 setup.
  • Flash13 - Tuesday, February 24, 2015 - link

    Why trust Samsung? I don't anymore.
  • youtard - Tuesday, February 24, 2015 - link

    hurr!
  • icrf - Tuesday, February 24, 2015 - link

    Suggestion for the graphs/charts picked from a drop down: make them all have the same scale, so when flipping between them, it's easier to compare from a visual shift. Ideally, it wouldn't be a drop down, but a set of checkboxes that would show/hide each line graph on the same chart to see more than one at once. If you're pre-rendering the charts, I understand how that would be a problem.
  • Edgar_in_Indy - Tuesday, February 24, 2015 - link

    It would be a lot easier to get excited about this drive if there were real-world numbers to look at. I find it frustrating that most hard drive reviews don't show some basic load times. You know, how long to boot windows, to load a level in a game, copy a huge file, etc.

    It would make it much easier to judge the relative performance of drives, and decide whether the results justify the upgrade cost.
  • willis936 - Wednesday, February 25, 2015 - link

    While it requires more technical knowledge from the reader it actually gives a lot more useful info. Time to load windows? Is that on first boot after install? After updates? After 100 programs are installed? After 10 r/w cycles? After the drive isfiles filled? With overprovisioning? I'd personally much rather synthetic tests that cover most cases so you can extrapolate subjective performance from it. You just have to know which workloads line up with which tests.
  • DanNeely - Wednesday, February 25, 2015 - link

    Page 2 of the article, section "A Word About Storage Benches and Real World Tests".

    TLDR version: "Too much background IO for consistent results to be possible."
  • Edgar_in_Indy - Wednesday, February 25, 2015 - link

    From that same section: "I know some of you have criticized our benchmarks due to the lack of real world application tests, but the unfortunate truth is that it's close to impossible to build a reliable test suite that can be executed in real time. Especially if you want to test something else than just boot and application launch times, there is simply too many tasks in the background that cannot be properly controlled to guarantee valid results. "

    Okay, then. So a complicated real-world test is difficult to duplicate. But why can't we at least have the simple "boot and application launch times" he referenced? And what about a large file copy, like I already mentioned? That's something most people could easily relate to. And time to compress a large group of files? Etc.

    If the whole idea of an SSD is to do things faster, then it would be helpful to get a stopwatch involved in these types of review, at least a little bit!

    Or if it really is "Mission Impossible" to document any real world speed improvements, then I can't help but wonder if this is kind of like people paying premiums for high-performance memory, with very little real-world return.
  • zodiacfml - Wednesday, February 25, 2015 - link

    Why not do a benchmark of a Windows installation in a virtual machine from a RAM disk?

Log in

Don't have an account? Sign up now