16 July 2019

Flash Non-Volatile Storage Bandwidth RPi4

Updated 10/01/2020 with Sandisk Ultra 128GB USB3 Flash Drive
Updated 28/07/2019 with Sandisk Ultra 64GB USB3 Flash Drive
Updated 23/07/2019 with Netac 32GB Class 10 U1 SDHC and Sandisk Ultra 64GB SDXC added
Updated 17/07/2019 with Sandisk 64GB Extreme SDXC added


Not all types and formats of non-volatile memory are the same.  Varying in interface and access times and speeds.  The performance of different devices will understandably affect performance and 'performance' is something I am interested in for the new RPi4 with USB3.

My new RPi has arrived and I am interested in the relative performances of some microSD cards I have.  Using CrystalDiskMark v6.0.4 a utility for benchmarking storage devices I ran the test and the results are shown below:

Samsung MicroSD 32GB Class 10
Formatted with FAT32


Sandisk MicroSD 128GB Ultra
Formatted with exFAT

As a comparison with other storage types:
USB3 Sandisk Flair 64GB Flash Drive
Formatted with FAT32

Samsung 860 EVO 500GB SSD connected to SATA bus
Formatted with NTFS
The SSD, of course, trounces the other storage options in performance and cost per GB, but not in terms of format, because it requires a connection to the SATA bus.  I am interested in microSD format performance for using an RPi4 as a NAS device running two USB3 WD 10TB drives in RAID1.

Update
Sandisk Extreme microSD 64GB
Formatted with exFAT

Revised conclusion
Given the price premium attached to the Extreme model and the nominal existing good performance of the 128GB Ultra version I would recommend the 128GB version given the extra available space.

Update 2
Netac 32GB Class10 U1 SDHC
Formatted with FAT32
Sandisk Ultra 64GB SDXC
Formatted with exFAT
Update 3
Sandisk Ultra 64GB USB3 Flash Drive
Formatted FAT32

Formatting the USB drive with the exFAT filesystem, for comparison, the results are realistically unchanged.
Update 4
Sandisk Ultra 128GB USB3 Flash Drive
Formatted FAT32


Strangely, this drive performs slower than its smaller 64GB sibling and I am unable to explain why.