SSD speeds: "up-to" no good.

So, you just bought your expensive new SSD. You unbox it, plug it in your shiny new Macbook Pro, fire up BlackMagic Disk Speed Test and see a number that makes you pleased with your purchase. But you're being lied to. And this becomes clear when next, you dump 100GB Capture One session onto it and it's just not what you expected in terms of speed, what gives?

Disk speed claims by Samsung for the Samsung T7 shield

When you're shopping for SSDs you commonly see an advertised Read/Write speed and it will say "Up To" with an asterisk and a bunch of fine print on the back of the box. That fine print is to back up their marketing wankery of the words "up to". It will define how they measure the data rates and and you too could theoretically get the same if you attempted. But, in the real world you're never going to see that speed.

What affects data transfer speeds?

One of the reasons you wont see those advertised speeds in real life comes from the components of the drive.
All SSDs have 3 types of chips on them:
  • DRAM Cache (Higher speed NAND to help increase performance, acts as a buffer for the slower/cheaper NAND.)
  • Controller (Talks to the computer and tells the data were to go and gets the data from the NAND.)
  • NAND flash (Where the data lives.)
M.2 NVMe SSD layout

As I've written before, some drives suffer from a small DRAM cache like the Samsung T7. The  controllers provide behind the scenes support, but essentially two important factors are: 1) their heat dissipation, and 2) firmware since those affect overall performance. The type of NAND flash can get complicated and affect the price and performance, you can learn more about that here.

A significant reason why real world speeds aren't as you'd expect comes from Random vs Sequential read/write of data. The fastest speed manufacturers get in testing comes from sequential data (like a large video file). They never advertise the random speeds. Random read/write speeds are typically much slower than sequential read/write speeds. This means that if you are accessing small files randomly, the speed will be much lower than accessing large files sequentially. 
Sequential access is faster because the controller can access all NAND chips in parallel, whereas for a random workload, this is unlikely. Also, a smart controller can detect that you're doing a sequential workload, and start reading data ahead.

Source: Wikipedia

So, the type/size of data, cache and controller can all affect the real world speeds. I'm sure you've experienced this when copying over a large Capture One session and it hits the session cache and your estimated copy time jumps from minutes to hours. Those tiny, random files just kill the performance.

Think of it like driving a car. A car has a top speed, but when are you ever going to see that? Sequential data is like driving on an interstate where you go long distances at a higher average speed. Random data is like driving around a city center where there's short city blocks, stop lights, crosswalks. Driving 10 miles around a city center takes A LOT longer than 10 miles on an interstate.

Internal storage of M1 Max Macbook Pro
You want to compare your drives for best performance for your needs what do you do? First, stop using BlackMagic Disk Speed Test as a benchmark. It doesn't tell the real story it just shows you the sequential speeds. The chart at the bottom of the BMDST gives you a check mark indicating the video data rates it can handle. And for someone using data that isn't sequential this can be misleading. The manual for the software even states:
Some SSDs can have up to 50% lower write speed than the manufacturer’s claimed speed, so even though the disk specifications claim an SSD is fast enough to handle video, in reality the disk is not fast enough for real time video data capture....
Use Blackmagic Disk Speed Test to measure accurately if your SSD will be able to handle uncompressed video capture and playback. 
BMDST is a video centric test and it shows by lacking any random data test or sustained write and ironically it's displayed like the instrument panel found in a car.

Internal storage of M1 Max Macbook Pro

What's the alternative to BlackMagic Speed Test?

If you want a better idea of what your real world data rates for a drive you should be using AmorphousDiskMark. It can provide information for random read/write that gives you a better idea of real world usage where smaller, random files are being moved around. So, going back to the car analogy, imagine that top row is your top speed, and the bottom line your congested downtown speed, going short distances of stop/go.

In Amorphous, the bottom two rows of the test are for random read/write of 4KiB (4KB/0.004MB) one at a queue depth of 32 the other at a queue depth of 1. When data is queued in chunks this can help  speed. So this explains how the smallest, most random files are the slowest. The controller is dealing with each command for data one at a time rather than chunks in parallel. 

Below, the test of a SanDisk Extreme SSD shows the range of speeds. I would say calculate the mean of the numbers to get a better grasp of what you're going to see in the real world working with various sized data. One reason this drive doesn't reach the advertised 1050MB/s in the sequential tests is that current Apple computers lack USB 3.2 2x2 support and this test was done with a M1 Max Macbook Pro. 

If you really want to dial in a benchmark for your specific use case you can use Stibium. (Learn more about it here.) Additionally, it's good for testing sustained performance like you'd see in a large write.

In oversimplified terms... A McLaren P1 might have a higher top speed than a Honda Civic but if they are both driving around a crowded downtown does it matter? You can very well see the same performance from two very different priced and spec'd SSDs depending on the workload and the bottlenecks in the system. When shopping for drives I urge you to look at real world benchmarking of data transfers as well as sustained read/write speeds to see if there's any cache or thermal bottlenecking. Good sources for real world testing and benchmarks are TomsHardware and AnandTech. They do deep dives and not just a 30 second IOPS test. 
There are some other factors regarding interfaces and theoretical bandwidth that can affect your external drive performance but I'll save that for another time.

What If I want the best performance?

No longer suggesting anyone purchase any SanDisk products do to their failures and poor response to the issue. Read more here

As it stands today, if you want the best performance from an external SSD on Apple computers you want to get a NVMe based SSD that uses Thunderbolt 3/4, such as: 
OWC Envoy Express enclosure paired with a Samsung 990 Pro 
Or go for a prebuilt TB SSD like the SanDisk Pro G-Drive SSD or the new SanDisk Pro G40.

Don't discredit non-thunderbolt SSDs. With the random data transfers for photos you're still have great performance out of them as those real world random read/writes often bring performance to the same level.
SanDisk Extreme is always a solid choice (don't bother paying more for the Pro since you wont have any better performance on Apple computers at this time)
OWC Envoy Electron Pro and the SAMSUNG T7 Shield (since it eliminated the cache flaw of the original T7) are solid options.
As for a DIY approach. ACASIS has a nice selection of NVMe enclosures and the Sabrent Rocket series of drives offer great performance.

On a final note. Don't keep running speed tests on your drives. They can shorten the lifespan of a drive. All SSDs have a lifespan and if you check specs for your drive you can find that number. It's it listed in TBW or Terabytes Written. Sometimes this can be surprisingly low, like 30TBW while others can be 1000TBW. For the average consumer this isn't really a concern but for professionals moving lots of data frequently there's potential to see an SSD hit it's lifespan.

If you would like to support the efforts of the blog you can donate here or here.