microSD Card Benchmark for EV3 and Raspberry Pi 3

microSD Card Benchmark for EV3 and Raspberry Pi 3

I needed to buy some more microSD cards for my growing collection of EV3s, BeagleBones and Raspberry Pis. There is surprisingly little information on the Internet about how to pick “the best” microSD card for these devices. And, what information that is out there tends to be a bit out of date due to the rapid progress of new technologies. So, this post intends to serve as one more data point to help people out for a short time before becoming obsolete.

If you are already familiar with the EV3, you know that it only supports microSDHC cards, which means 32GB and smaller. Any card bigger than this will result in data corruption. And unfortunately, we’ve had some reports that some 32GB cards also don’t work either, resulting in data corruption. Because of this, I opted to look at primarily 16GB cards. I was surprised to find that 16GB cards are already becoming rare.

I did what most people probably do and bought a bunch of 16GB cards from random vendors on amazon.com in the $10 to $15 range. I don’t really recommend doing this due to the widespread problem of counterfeit SD cards. The smarter thing to do would be to buy them from the authorized resellers listed on the manufacturers websites.

But, let’s just skip ahead to what most people are interested in… the results:

Make, Model, Capacity, Read Speed hdparm buffered dd write 4K rand read 4K rand write
Amplin, DuraTop, 16GB, 95MB/s 12.4 MB/s 7.0 MB/s 2.44 MB/s 0.76 MB/s
Kingston, 16GB, 90MB/s 12.6 MB/s 6.4 MB/s 2.29 MB/s 0.32 MB/s
OV, Pro Gold, 16GB, 80MB/s 13.9 MB/s 6.5 MB/s 2.29 MB/s 0.64 MB/s
Polaroid, Extreme Performance, 16GB, 95MB/s 12.5 MB/s 6.2 MB/s 1.60 MB/s 0.62 MB/s
Samsung, EVO+, 32GB, 80MB/s* 13.4 MB/s 6.1 MB/s 1.97 MB/s 0.63 MB/s
SanDisk, Extreme, 16GB, 60MB/s 14.3 MB/s 7.3 MB/s 2.55 MB/s 1.35 MB/s
SanDisk, Extreme, 16GB, 90MB/s 14.8 MB/s 7.3 MB/s 2.57 MB/s 1.38 MB/s
Toshiba, Exceria, 16GB, 90MB/s 14.8 MB/s 5.4 MB/s 2.81 MB/s 0.33 MB/s


Raspberry Pi 3 Benchmark
Make, Model, Capacity, Read Speed hdparm buffered dd write 4K rand read 4K rand write
Amplin, DuraTop, 16GB, 95MB/s 19.7 MB/s 19.6 MB/s 7.22 MB/s 0.98 MB/s
Kingston, 16GB, 90MB/s 19.8 MB/s 18.9 MB/s 5.68 MB/s 0.35 MB/s
OV, Pro Gold, 16GB, 80MB/s 21.2 MB/s 19.3 MB/s 6.13 MB/s 0.80 MB/s
Polaroid, Extreme Performance, 16GB, 95MB/s 19.5 MB/s 19.6 MB/s 1.82 MB/s 0.75 MB/s
Samsung, EVO+, 32GB, 80MB/s* 21.3 MB/s 15.5 MB/s 4.45 MB/s 0.78 MB/s
SanDisk, Extreme, 16GB, 60MB/s 22.0 MB/s 21.3 MB/s 8.24 MB/s 2.34 MB/s
SanDisk, Extreme, 16GB, 90MB/s 21.9 MB/s 21.3 MB/s 8.22 MB/s 2.39 MB/s
Toshiba, Exceria, 16GB, 90MB/s 22.1 MB/s 18.5 MB/s 10.50 MB/s 0.35 MB/s

* The Samsung EVO+ is not available in a 16GB version. And more importantly, my benchmark numbers are not comparable to other benchmarks of the same card, so I suspect that this card may be counterfeit.

So, what do these numbers mean? I used http://www.pidramble.com/wiki/benchmarks/microsd-cards as a basis for my benchmark. Basically, most SD cards are designed for photos and video where you are writing large files all at once (called sequential reading and writing). For ev3dev (and other embedded systems), we are much more interested in small files scattered around the file system (the 4k random read/write numbers). The manufactures don’t publish these numbers, so we have to do a benchmark to find out for ourselves.

As you can see from the charts above, the hdparm buffered and dd write numbers are roughly the same for all of the cards. This is not surprising since the advertised speed of most of the cards was about the same. These tests measure the sequential read and write speeds. But, where we can really see a difference is in the 4k random read and and write speeds.

So, based on my results, the clear winner is the SanDisk Extreme. Although it is interesting to note that the older 60MB/s version performs just as well as the newer 90MB/s. The Amplin DuraTop and OV Pro deserve an honorable mention if you want to save a few dollars and still get decent performance. (I have purposely left out the Samsung EVO+ since my numbers are suspect, but it is probably a good choice too, based on other benchmarks. I certainly don’t recommend buying one from the vendor I linked though.)

If you would like to repeat my tests exactly, I used the 2017-04-15 ev3dev snapshot and this script. All numbers in the charts are the best of three runs of the script.

3 Comments on “microSD Card Benchmark for EV3 and Raspberry Pi 3

  1. Hi David,

    I found your post while running some iozone benchmarks with a new Samsung EVO+ 32gb card on a Raspberry Pi 3. I got 4K read/write results very similar to yours. I recently bought the EVO+ card (unopened) from a Best Buy retail store. I purchased another card back in 2016, and got benchmark results similar to those reported by Jeff Geerling. So, I’m inclined to think that your EVO+ results may not be suspect. Perhaps Samsung has changed their EVO+ cards sometime in the past year. I find it hard to believe that Best Buy is selling counterfeit cards, although I suppose its possible. Thanks for your post and I’m glad I found it.

    • Thanks for the feedback. I agree that is seems more likely that Samsung changed the card.

  2. similar results with an Evo+ and an Evo Plus (different cards per samsung’s website). The Evo + that I’ve had for a while and bought from Amazon may have been a fake, but posted .53 MB/sec random write. The newer Evo Plus that I got from Best Buy had 1.34 MB/Sec, which is better, but still not the 3.99 MB/Sec I got with a Sandisk Extreme (all 32 GB)

    The 2 newer cards were pretty cheap, glad I got them both to test. Your contrary results were what made me consider the Sandisk instead of just going with the Samsung. Jeff’s results don’t match what I have seen, though to be fair his newer Evo Plus card was larger, and still slower than his + speed, which could square with my result. Just assuming my + was a fake. At any rate the Sandisk has bested anything I’ve seen posted. Thanks for posting your results!