Sequential Read

Sequential access is usually tested with 128kB transfers, which is large enough that requests can typically be striped across multiple controller channels and still involve writing a full page or more to the flash on each channel. Real-world sequential transfer sizes vary widely depending on factors like which application is moving the data or how fragmented the filesystem is.

The drives were preconditioned with two full writes using 4kB random writes, so the data on each drive is entirely fragmented. This may limit how much prefetching of user data the drives can perform on the sequential read tests, but they can likely benefit from better locality of access to their internal mapping tables. These tests were conducted on the Optane Memory as a standalone SSD, not in any caching configuration.

Queue Depth 1

The test of sequential read performance at different transfer sizes was conducted at queue depth 1. Each transfer size was used for four minutes, and the throughput was averaged over the final three minutes of each test segment.

Sequential Read
Vertical Axis scale: Linear Logarithmic

The three PCIe drives show similar growth through the small to mid transfer sizes, but the Optane Memory once again has the highest performance for small transfers and higher performance across the board than the Samsung 960 EVO.

Queue Depth > 1

For testing sequential read speeds at different queue depths, we use the same overall test structure as for random reads: total queue depths of up to 64 are tested using a maximum of four threads. Each thread is reading sequentially but from a different region of the drive, so the read commands the drive receives are not entirely sorted by logical block address.

The Samsung 960 EVO and Optane Memory start out with QD1 sequential read performance and latency that is relatively close, but then at higher queue depths the Optane Memory jumps up to a significantly higher throughput.

Sequential Read Throughput
Vertical Axis scale: Linear Logarithmic

The two Optane devices saturate for sequential reads at QD2, but the Optane Memory experiences a much smaller jump from its QD1 throughput. The flash SSDs are mostly saturated from the start. The Crucial MX300 delivers far lower performance than SATA allows for, due to this test being multithreaded with up to four workers reading from different parts of the drive.

Sequential Read Latency
Mean Median 99th Percentile 99.999th Percentile

Since all four drives are saturated through almost all of this test, the latency graphs are fairly boring: increasing queue depth increases latency. For mean and median latency the Optane Memory and the Samsung 960 EVO are relatively close, but for the 99th and 99.999th percentile metrics the 960 EVO is mostly slower than the Optane Memory by about the same factor of two that the P4800X beats the Optane Memory by.

Sequential Write

The sequential write tests are structured identically to the sequential read tests save for the direction the data is flowing. The sequential write performance of different transfer sizes is conducted with a single thread operating at queue depth 1. For testing a range of queue depths, a 128kB transfer size is used and up to four worker threads are used, each writing sequentially but to different portions of the drive. Each sub-test (transfer size or queue depth) is run for four minutes and the performance statistics ignore the first minute. These tests were conducted on the Optane Memory as a standalone SSD, not in any caching configuration.

Sequential Write
Vertical Axis scale: Linear Logarithmic

The enterprise-focused Optane SSD P4800X is slower than the consumer Optane Memory for sequential writes of less than 4kB, and even the Samsung 960 EVO beats the P4800X at 512B transfers. The 960 EVO's performance is inconsistent through the second half of the test but on average it is far closer to the MX300 than either Optane device. For larger transfers the MX300 is about a tenth the speed of the Optane Memory.

Queue Depth > 1

The sequential write throughput of the Optane SSD DC P4800X dwarfs that of the other three drives, even the Optane Memory. The Optane Memory does provide substantially higher throughput than the flash SSDs, but it does not have a latency advantage for sequential writes.

Sequential Write Throughput
Vertical Axis scale: Linear Logarithmic

The Crucial MX300 is the only drive that does not get a throughput boost going from QD1 to QD2; as with the random write test it is not able to improve performance when the higher queue depth is due to multiple threads writing to the drive. The Samsung 960 EVO improves from the addition of a second thread but beyond that it simply gets more inconsistent. The Optane Memory and P4800X are both very consistent and saturated at QD2 after a moderate improvement from QD1.

Sequential Write Latency
Mean Median 99th Percentile 99.999th Percentile

The flash SSDs get more inconsistent with increased thread count and queue depth, but other than that the latency charts show the predictable growth in latency that comes from the drives all being saturated in terms of throughput.

Random Access Performance Mixed Read/Write And Idle Power Consumption
Comments Locked

110 Comments

View All Comments

  • evilpaul666 - Thursday, April 27, 2017 - link

    Everyone presumes that technology will improve over time. Talking up 1000x improvements, making people wait for a year or more, and then releasing a stupid expensive small drive for the Enterprise segment, and a not particularly useful tiny drive for whoever is running a Core i3 7000 series or better CPU with a mechanical hard drive, for some reason, is slightly disappointing.

    We wanted better stuff now after a year of waiting not at some point in the future which was where we've always been.
  • Lehti - Tuesday, April 25, 2017 - link

    Hmm... And how does this compare to regular SSD caching using Smart Response? So far I can't see why anyone would want an Optane cache as opposed to that or, even better, a boot SSD paired with a storage hard drive.
  • Calin - Tuesday, April 25, 2017 - link

    Did you brought the WD Caviar to steady state by filling it twice with random data in random files? Performance of magnetic media varies greatly based on drive fragmentation
  • Billy Tallis - Wednesday, April 26, 2017 - link

    I didn't pre-condition any of the drives for SYSmark, just for the synthetic tests (which the hard drive wasn't included in). For the SYSmark test runs, the drives were all secure erased then imaged with Windows.
  • MrSpadge - Tuesday, April 25, 2017 - link

    "Queue Depth > 1

    When testing sequential writes at varying queue depths, the Intel SSD DC P3700's performance was highly erratic. We did not have sufficient time to determine what was going wrong, so its results have been excluded from the graphs and analysis below."

    Yes, the DC P3700 is definitely excluded from these graphs.. and the other ones ;)
  • Billy Tallis - Wednesday, April 26, 2017 - link

    Oops. I copied a little too much from the P4800X review...
  • MrSpadge - Tuesday, April 25, 2017 - link

    Billy, why is the 960 Evo performing so badly under Sysmark 2014, when it wins almost all synthetic benchmarks against the MX300? Sure, it's got fewer dies.. but that applies to the low level measurements as well.
  • Billy Tallis - Wednesday, April 26, 2017 - link

    I don't know for sure yet. I'll be re-doing the SYSmark tests with a fresh install of Windows 10 Creators Update, and I'll experiment with NVMe drivers and settings. My suspicion is that the 960 EVO was being held back by Microsoft's horrific NVMe driver default behavior, while the synthetic tests in this review were run on Linux.
  • MrSpadge - Wednesday, April 26, 2017 - link

    That makes sense, thanks for answering!
  • Valantar - Tuesday, April 25, 2017 - link

    Is there any reason why one couldn't stick this in any old NVMe-compatible motherboard regardless of paltform and use a software caching system like PrimoCache on it? It identifies to the system as a standard NVMe drive, no? Or does it somehow have the system identify itself on POST and refuse to communicate if it provides the "wrong" identifier?

Log in

Don't have an account? Sign up now