Sequential Performance – HDTach, HDTune, File Copy, YAPT (sequential)
We have shifted over to combining our results into two groupings for consumer reviews. First up is sequential performance:
HD Tach will test the sequential read, random access and interface burst speeds of your attached storage device (hard drive, flash drive, removable drive, etc). All drive technologies such as SCSI, IDE/ATA, 1394, USB, SATA and RAID are supported. HDTach tests sequential performance by issuing reads in a manner that was optimized more for HDD access, but this unique method has proven useful in evaluating the sequential response time of SSDs. The accesses are relatively small in size (2k), and are issued with a single working thread (QD=1). The end result is that devices with relatively IO high latency will not reach their ultimate rated speed.
Given the MX300 shifts to TLC mode early in this test, 300MB/s is actually better than what I was expecting out of this new IMFT flash. I knew they were optimizing for capacity over speed, but that speed isn't bad at all considering. Here's a closer look at the test itself:
As you can see, speeds start off in SLC mode, but after a few GB of full speed, the new DWA algorithm anticipates heavy load, switching to direct-to-TLC writes, which take place at ~300 MB/s. This finally gives us our answer to a burning question, which was what is the TLC write speed of this new IMFT flash. Let's do the math:
- 300MB/s / 16 total dies = ~19 MB/s per die
- 19 MB/s per die / 4 planes per die = ~4.5 MB/s per plane.
MLC and SLC are of course faster (guessing ~2x and ~4x), but at least we have one missing piece of the puzzle for future NAND technical comparisons.
There is also some spiking towards 500MB/s in the first 600GB, and down towards 200 MB/s between 600GB and 750GB. Realize that this is a full sequential write across the entire SSD area. It's not typical by any means, but the MX300 still handles it very well given the circumstances.
HDTune tests a similar level of features as compared with HDTach, but with a different access pattern. Thus provides us with an additional set of benchmark numbers to compare between storage configurations. CPU utilization has proven negligible with modern processing horsepower, and is no longer included. Additionally, we do not include write performance due to HDTune's write access pattern not playing nicely with most SSDs we have tested it on.
Speeds look good here, with most SATA products at or near saturation of the interface.
PCPer File Copy Test
Our custom PCPer-FC test does some fairly simple file creation and copy routines in order to test the storage system for speed. The script creates a set of files of varying sizes, times the creation process, then copies the same files to another partition on the same hard drive and times the copy process. There are four file sizes that we used to try and find any strong or weak points in the hardware: 10 files @ 1000 MB each, 100 files @ 100 MB each, 500 files @ 10 MB each and 1000 files at 1 MB each.
File creation and copies look good for the MX300, with no real hiccups to note. Bear in mind that in this, the SSD flash area is not fully allocated, with tested drives being more on the empty side. 'Fuller' tests will take place later in this article. That said, the DWA tweaks observed should yield similar results even with a nearly full drive.
YAPT (yet another performance test) is a benchmark recommended by a pair of drive manufacturers and was incredibly difficult to locate as it hasn't been updated or used in quite some time. That doesn't make it irrelevant by any means though, as the benchmark is quite useful. It creates a test file of about 100 MB in size and runs both random and sequential read and write tests with it while changing the data I/O size in the process. The misaligned nature of this test exposes the read-modify-write performance of SSDs and Advanced Format HDDs.
YAPT does its reads and writes in a non-4k-aligned manner, and some SSDs end up being highly sensitive to that type of workload. SATA SSDs have been refined to the point where it is not an issue (at least for sequential writes – more to follow on the next page).