macOS Performance

Our AnandTech Storage Bench trace-based tests are Windows-only, and running them on a Mac in a Boot Camp configuration wouldn't give us much insight beyond running the same ATSB tests on our usual desktop testbed. However, our suite of synthetic benchmarks uses the cross-platform FIO tool, so these tests could be easily adapted to run under macOS.

Our usual configuration for these tests has the drive under test as a secondary drive, with nothing on the drive other than the data written by the test itself. This is the best way to measure a drive's raw performance capability without any interference and minimal overhead, but that's not usually a very realistic configuration. Without our ATSB tests to give a more real-world picture to counterbalance the idealized synthetic benchmark results, we chose to reconfigure the synthetic tests to use a somewhat more realistic configuration. Instead of running the OS off a separate drive, the drives under test were used as the only storage attached to the system. A clean install of MacOS 10.14 Mojave was used on each drive, and instead of having the tests access the drive as a raw block device, the tests were run against ordinary files residing on the same APFS filesystem as macOS and the testing software.

The amount of data read or written by each test is the same as for our usual Linux-based synthetic benchmark results. However, with the overhead of a copy-on-write filesystem and background traffic from the OS getting in the way, and with an entirely different host operating system, the numbers below are not at all comparable to our previous results on our standard desktop testbed.

These tests were run on two different MacBook Pro systems: a base model 13" Retina MacBook Pro from 2015 with a dual-core Broadwell processor, and a high-end 15" Retina MacBook Pro (Late 2013 model) with a quad-core Haswell processor. The only attempt to tune the machines for performance was changing two sysctls to allow more threads to be used to handle asynchronous IO—necessary for testing higher queue depths, but not needed for real-world low queue depth workloads.

Random Read Performance

Our first test of random read performance uses very short bursts of operations issued one at a time with no queuing. The drives are given enough idle time between bursts to yield an overall duty cycle of 20%, so thermal throttling is impossible. Each burst consists of a total of 32MB of 4kB random reads, from a 16GB test file. The total data read is 1GB.

Burst 4kB Random Read (Queue Depth 1)

Consistent with our usual Linux-based testing, the two drives with Silicon Motion SM2262EN controllers (OWC Aura Pro X2 and HP EX950) offer the best burst random read performance. The WD Black SN750 fares poorly, ending up slower than the more recent Apple OEM drive but outperforming the older PCIe 2.0 Apple OEM drive.

Our sustained random read test adds higher queue depths to the score: queue depths from 1 to 32 are tested, and the average performance across QD1, QD2 and QD4 is reported as the primary score. Each queue depth is tested for one minute or 32GB of data transferred, whichever is shorter. After each queue depth is tested, the drive is given up to one minute to cool off so that the higher queue depths are unlikely to be affected by accumulated heat build-up. The individual read operations are again 4kB, and are taken from a 64GB test file.

Sustained 4kB Random Read

On the longer random read test, the Aura Pro X2 remains one of the fastest SSDs, and the Samsung 970 PRO is essentially tied. The HP EX950's performance was inconsistent between the two laptops.

At sufficiently high queue depths, the HP EX950 and Samsung 970 PRO develop small performance leads over the Aura Pro X2. Additionally, the 13" MacBook Pro is severely bottlenecked by its weaker CPU that is unable to keep the SSDs busy under these conditions.

Random Write Performance

Our test of random write burst performance is structured similarly to the random read burst test, but each burst is only 4MB and the total test length is 128MB. The 4kB random write operations are distributed over a 16GB test file, and the operations are issued one at a time with no queuing.

Burst 4kB Random Write (Queue Depth 1)

The modern NVMe drives all provide similar performance on this burst random write test, while the older Apple OEM drives are at a clear disadvantage but aren't unusably slow. The 15" rMBP has significantly better performance than the 13" with the modern drives, but both machines offer roughly similar performance with the original Apple SSDs.

As with the sustained random read test, our sustained 4kB random write test runs for up to one minute or 32GB per queue depth, covering a 64GB test file and giving the drive up to 1 minute of idle time between queue depths to allow for write caches to be flushed and for the drive to cool down.

Sustained 4kB Random Write

The results for the longer random write test are pretty similar to the burst random write test above. The modern NVMe drives all perform about the same, and the higher CPU power of the 15" machine compared to the 13" makes a bigger difference for these fast drives than it did for the original Apple SSDs.

Random write doesn't improve with higher queue depths under these test conditions. Instead, it is either flat or declining as the OS has to juggle more threads to issue IO, and there may be some locking somewhere in the filesystem and storage stack that's preventing the kind of scalability we see on Linux.

Mixed Random Performance

Our test of mixed random reads and writes covers mixes varying from pure reads to pure writes at 10% increments. Each mix is tested for up to 1 minute or 32GB of data transferred. The test is conducted with a queue depth of 4, and is limited to a 64GB test file. In between each mix, the drive is given idle time of up to one minute so that the overall duty cycle is 50%.

Mixed 4kB Random Read/Write

The Aura Pro X2's performance on the mixed random I/O test is comparable to the other recent TLC drives but a bit slower than the Samsung 970 PRO. The modern NVMe drives are about twice as fast as the Apple originals on the 15" MacBook Pro, but on the more CPU-limited 13", they Aura Pro X2 is only about 50-60% faster.

The recent NVMe SSDs all generally show performance increasing as workload becomes more write-heavy, but the 13" MBP's CPU bottleneck cuts off that growth for most of the second half of the test. The Apple originals show relatively flat performance across most of the test, but the older 512GB drive has a bit of the uptick at the end that we typically expect.

Introduction macOS Sequential IO Performance
Comments Locked

32 Comments

View All Comments

  • Samus - Thursday, June 6, 2019 - link

    I installed an Aura N 1TB SSD in a 2014 Macbook Pro just a few days ago for a customer. Went off without a hitch, booted from a Time Machine backup and did a restore without an issue. Now what to do with the old 128GB SSD that's basically useless...
  • MamiyaOtaru - Thursday, June 6, 2019 - link

    that's what the case they also sell is for. Turn it into a turbocharged thumb drive.
  • tipoo - Friday, June 7, 2019 - link

    I'd still be really curious to see a T2 mac put through these tests. Prior to it at least, Apple SSDs were good at sequential reads and writes but fell lower than the competition on 4K random and mixed loads, I'd be curious how one given such a powerful controller would do.
  • nfriedly - Saturday, June 8, 2019 - link

    I tried twice to upgrade my wife's 2014 MacBook SSD. First with an OWC drive, and second with a Samsung 970 and an adapter. The OWC one would often crash the MacBook when waking from sleep. The Samsung one would crash it while she was using it. E.g. launching a program would cause it to freeze and then reboot. I gave up and put her apple SSD back in.
  • Oxford Guy - Friday, June 14, 2019 - link

    Was it an OWC made specifically for this purpose? If so, then it should have worked.

    As for the Samsung, there are drives that have better reputations for Mac compatibility. Look at the link in the comments here and read that carefully.
  • leexgx - Monday, June 17, 2019 - link

    OWC does not support the sleep states correctly they have never corrected this

    witch is stupid as the point of OWC ssds is for mac compatibility and faking official apple SSD to automatically enable trim support out of the box
  • Rene23 - Wednesday, June 19, 2019 - link

    I would not buy such special / proprietary SSDs, and instead just go the dapper dongle route, more choice, more flexibility, ... https://www.youtube.com/watch?v=0QGO9XJY60s
  • Sandris - Saturday, June 22, 2019 - link

    Just bought and install OWC Auro Pro X2 SSD for my MacBook Air 6.2 as I really trusted OWC, but find out that there are issues with sleep mode and this issue could not be solved. As per OWC technical support, the solution is to ship back OWC Aura Pro X2 SSD to OWC and cover all costs, if I do not like loose Sleep functionality of my MacBook. No disclaimers on OWC web on technical incompatibility with MacBook Air 6.2.
  • ttot - Saturday, August 10, 2019 - link

    Really wishing for a Transcend Jetdrive 850 comparison as this seems to be the only (adapter-less) competitor. Additionally, what about plate-less adapters? Are those too bulky too?
  • jimmarz - Friday, March 27, 2020 - link

    There are a lot of problems with the Aura Pro X2. I bought a computer from OWC with their drive installed. I have had nothing but problems with it and keep getting EFI Check dumps. OWC refused to acknowledge there was even a hardware issue. Even after I shipped it back to them! I wasted tens of hours troubleshooting, formatting and re-installing the OS etc. at OWC urging. Finally I sent the machine to Apple and sure enough they flagged the SSD as the problem. Spend your money on something else. There are literally hundreds of complaints on Yelp about OWC and these drives.

Log in

Don't have an account? Sign up now