Raspberry Pi microSD card performance comparison - 2018

Raspberry Pi microSD cards Noobs Samsung Kingston Toshiba Sony SanDisk SD SBC

Back in 2015, I wrote a popular post comparing the performance of a number of microSD cards when used with the Raspberry Pi. In the intervening three years, the marketplace hasn't changed a ton, but there have been two new revisions to the Raspberry Pi (the model 3 B and just-released model 3 B+). In that article, I stated:

One of the highest-impact upgrades you can perform to increase Raspberry Pi performance is to buy the fastest possible microSD card—especially for applications where you need to do a lot of random reads and writes.

As part of my work on a comprehensive review of the Raspberry Pi model 3 B+, I decided to re-run all the benchmarks for all the Samsung and SanDisk cards (the rest, from Sony, Toshiba, Lexar, and no-name brands were so slow for Pi usage as to not warrant any testing at all!). Without further ado, here are the latest results, tested on a Raspberry Pi model 3 B+:

Raspberry Pi model 3 B+ microSD card performance comparison

Just as with the model 2 B and model 3 B, the Samsung Evo+ outshines the rest of the field in 4K random read and random write—two of the most important metrics for common Raspberry Pi use cases. Since the Pi's microSD I/O is often the major bottleneck (especially now that the onboard LAN and WiFi have upped their bandwidth by at least 2x over the previous generation), it's important to get every bit of speed out of the card that runs the OS as is possible.

The SanDisk Extreme and Samsung Pro+ are also worthy options, but both cost slightly more than the Evo+, and offer slightly less performance overall.

In a simpler format, here are my picks for the best microSD cards on the market for use with the Raspberry Pi:

  1. Samsung Evo+ - $15 on Amazon
  2. SanDisk Extreme - $19 on Amazon
  3. Samsung Pro+ - $27 on Amazon

Overclocking the Pi's microSD card reader

You can also overclock the microSD card reader in the Raspberry Pi to eke out a tiny bit more performance from the cards in this benchmark (all except the Samsung Pro (non-plus) were stable at a 100 MHz overclock in my testing), but it won't make much of a difference in real-world usage.

Raspberry Pi model 3 B+ microSD card performance - overclock comparison

There is a measurable performance increase, but when you get to real-world usage, it doesn't make a huge difference (when I did Drupal testing, there was less than 1% difference when overclocked vs not overclocked).

Benchmark methodology

For the benchmarks, I ran a standardized I/O benchmark script on a freshly-flashed Pi using the latest version of Raspbian Lite, with no modifications or customizations. The script can be run on a Pi running Raspbian using the following command:

curl https://raw.githubusercontent.com/geerlingguy/raspberry-pi-dramble/master/setup/benchmarks/microsd-benchmarks.sh | sudo bash

You can view all the benchmarks and detailed methodology in my continuously-updated microSD card benchmarks page on the Raspberry Pi Dramble wiki.

Comments

Great test, that show how bad is atm the situation with RaspyPi.
Is unbelievable that in 2018 any RaspyPi board have a real Sata port or any other solution to use a SSD.
Unfortunatly that limits alot the use of the RaspyPi for many uses and push advanced user/pro turn to other boards.

Indeed; however, the Pi's software support and community are leagues beyond other SBCs, and this is currently the major advantage (besides maybe also brand awareness).

I've tested the ODROID-C2, Orange Pi, and am finishing up testing on the ASUS Tinker Board, and all of these boards are leagues beyond the Pi in terms of I/O performance (both networking and local storage). The problem is most of these boards are either priced the same as or more than the Pi 3 B+, and have a much worse initial onboarding experience (grabbing a disk image, flashing the card or onboard memory, first boot, then figuring out where to go next) than what you get with the Pi and it's handy, well-written tutorials.

One of the main issues I have is not performance but failure of the cards in relatively short time periods with minor use. Any data there?

I have noticed my raspberry pi also seems to destroy memory cards, in that after a while they are corrupted and I can't reformat them.

Odd, I've used several over the years and have had one SD card in a pi 1 die (after 3 years of use + use in a digital camera prior). What distro are you using?

We have around 60 devices deployed around the US and have found all except the SanDisk Ultra micros fail after 6 months to 1 year.

I would check the power supply that you're using. My RPi2's kept corrupting SD cards when I was using a standard usb charger. When I finally sprung for a proper power supply, the problem went away.

Premature wearing out of SD Cards is probably caused by a phenomenon called wear usage, sd cards are like tires and when the same blocks get used time and time again they crap out and will end up by choking the device they are being used in (e,g, a Raspberry Pi), some manufacturers (like Scandisk) will void their warranties if the cards are not used in the intended manner. though some of the effects of wear usage is mitigated through a system called wear levelling which is, for example built into the Sandisk Extreme (but not the Sandisk Ultra at present) it still has a shortened life cycle, to use a micro SD card with heavy read/write cycle usage one must look towards the endurance lines of the manufacturers products,

Remember you can USB boot or network boot the Pi 3/3+ too, if you want faster r/w speed and a more reliable data storage.

I never use SUDO and DO NOT recommend running this script as root if the SUDO test is removed. It wiped out key files.

You can run the commands in the script independently (and those who are security conscious should never curl/sudo bash!). The only thing requiring sudo is the hdparm package installation. Not sure why or how any keys could be affected by this script, though.

Awesome stuff. Thanks!

Hi Jeff,

It would be nice if a benchmark on longevity is done as well. Considering, SD card corruption/locked in a read only mode is a frequent scenario with Pi.

> "the rest, from Sony, Toshiba, Lexar, and no-name brands were so slow for Pi usage as to not warrant any testing at all!"

That might be true for performance but, In my experience Toshiba Exceria M302 (built for action cameras) scores higher in longevity than Samsung EVO. I've abused the Toshiba SD card to get it corrupted & I've yet to see one. Also, by checking out few comments in your 2015 article; people have posted benchmarks for the excluded cards which doesn't sound bad for daily use. I guess, different batches of same manufacturer needs to be tested as well.

I would also be really interested in this. For most of my uses reliability is much more important than speed.

Have you tested any of the Samsung EVO+ U3 cards? The EVO+ 32GB only comes as a U1 speed card, it looks like you have to get 64GB or larger to get the U3.

Helpful writeup, thank you. Would be great to see a similar comparison with USB 3.x thumb drives. We've had good success in terms of speed and reliability with Samsung USB 3.0 Flash Drive Fit.

It would be interesting to see the newer Samsung EVO Plus cards, not to be confused with the older EVO+ cards.

Also the start of the newer 'A' rating cards that are appearing, targeting this 4k market.

Maybe a nice editable database usable with a standard SD image setup for testing it so it's easy to compare.

I might have to move things into a Google spreadsheet! Good idea.

Also, I just realized I do have a newer Evo Plus 64GB card (U3), so I'm going to run the benchmarks on it again and update the graph in this post. Thanks for bringing that up! I've also ordered a newer Sony U3 card for testing as well.

[Edit: See my preliminary results below; I'll add them to the graph in the post in a bit.]

I am brand new to Raspberry Pi, bought myself a 3 B+, and wanted to find some board specific benchmarking tests before I bought. Instead I had to rely on general benchmarking tests. I ended up purchasing a 64GB Samsung Evo Select U3 card for $20 at Amazon. I almost bought a slower Evo Select U1 card for the same price by mistake.

It might be helpful for you to add additional information regarding specific cards used to include speed class. When I read this article I wasn't sure which "Evo" card (without the "+" or "Pro") was used as Samsung doesn't make just plain "Evo" cards right now.

Thanks for the helpful article.

Using my Pi as a Unifi Controller, working great. I'm amazed at the community and how much computer you get for such a low price.

For my own curiosity I ran the benchmark script on Raspian with my Samsung Evo Select U3. It was not a pure fresh install of Lite....it was full desktop, with my controller running in the background and with Chromium open but not being used.

hdparm = 22.51 MB/sec
dd = 11.3 MB/s

Not sure how to interpret the iozone tests, so I'll just post the raw results and hopefully someone can interpret:
random random bkwd record stride
kB reclen write rewrite read reread read write read rewrite read fwrite frewrite fread freread
102400 4 2583 3763 6609 6579 6479 1705

Did a clean install of lite, re-ran benchmarks.

hdparm = 22.51 MB/sec
dd = 15.7 MB/sec

iozone:
write: 3499
rewrite: 3820
read: 7112
reread: 7110
random read: 7089
random write: 1953

Those numbers match up to my own pretty well; I just realized I have a Samsung Evo Plus U3 64GB card on my desk that I didn't test! I'll be adding it to the graph and results above, but here are my results:

  • hdparm: 21.71 MB/s
  • dd: 19.5 MB/s
  • 4k read: 7.87 MB/s
  • 4k write: 2.33 MB/s

My results were slightly faster; note that there can be card-to-card variance, usually it's not quite this much though. Could be different batches of cards. One thing that was way faster was the flashing of the card on my Mac. It wrote at 65 MB/sec compared to about 45 MB/sec for the Evo+ 32 GB card.

But my recommendation of the Evo+ as the best for price/performance still stands!

So it's turns that older Evo+ are faster for PI? What do you think about Evo Plus 32GB (U1) will it be as fast as Evo+? I'm going to buy one

Yes, according to my tests the Plus is slower than the +. It’s probably because Samsung focuses (like most flash card manufacturers) on sequential performance and not on random IO.

Add my name to the long list of folks wanting a higher end RasPi, maybe in the $100 range. Other SBCs might have better performance, but the RasPi is the best supported computer I've seen.

I would really like to see another benchmark added, one that reflects what a user will see in everyday use.

Hello,
Could you post the model numer and capacity of the Evo+ you used?
Is it the MB-MC32DA/AM 32Gb?

Thanks

For my tests, I'm using the MB-MC32DA/AM 32GB model.

Are you going to update the wiki.

Anyway I'll add (fresh April Raspbian GUI, plus a few apt updates) there has been a stock speed change to ram iirc.
Anyway
At none GUI boot.

SANDISK Ultra *A1* 64GB
(sdsquar-064G-GZFMA)

50Hz
1st / 2nd test
22.51/22.61
10.0/10.1
7878/7907
3155/3047

---
dtparm=sd_overclock=100

100Hz
test1/test2/test3

33.79/33.60/33.56
10.4/15.2/13.7
8979/9004/9276
3026/3160/3150

Any chance getting these on the charts?
Many are buying the SanDisk A1's now.
I can also grab them for 32GB size too.

Do it please for 32GB too

What about wear leveling?

Hi, I think you link to Amazon for the Evo+ could be a fake, going by the comments on Amazon.

Hello,

Any idea where to find a real Evo+?
Any new tests/benchmarks with the Evo plus?
What to buy instead of the Evo+

Thanks

Here are my results
Raspbian 9.4 lite (fresh install); iozone 3.482; actual sd clock: 100MHz

Kingston microSDHC/SDXC UHS-I U3 90R/80W 64GB (SDCA3/64GB)
hdparm: 35.82 MB/sec
dd: 22.5 MB/s
4k read: 8570 kBytes/sec
4k write: 644 kBytes/sec

Samsung EVO Plus 64GB [SDXC UHS-I U3 100R/60W] (MB-MC64G/CN)
hdparm: 35.27 MB/sec
dd: 19.5 MB/s
4k read: 9916 kBytes/sec
4k write: 2740 kBytes/sec

Samsung EVO Plus 32GB [SDHC UHS-I U1 90R/20W] (MB-MC32GA/EU)
hdparm: 36.25 MB/sec
dd: 19.4 MB/s
4k read: 8517 kBytes/sec
4k write: 2427 kBytes/sec

SanDisk Extreme PRO 32GB [SDHC UHS-I U3 100R/90W V30 A1] (SDSQXCG-032G-GN6MA)
hdparm: 37.00 MB/s
dd: 22.4 MB/s
4k read: 10107 kBytes/sec
4k write: 4540 kBytes/sec

It's seems SanDisk with A1 label is a new leader.
NB. enable_uart=1 will limit sd clock to 83Mhz

Have ever tried ATP cards? They are for industrial applications. Very durable and quite fast.

This page is fantastic. My addition:

Raspberry Pi 3 B+, microSD clock = 50MHz - not overclocked (best of 3 runs for each card)

Samsung EVO+ 32GB UHS-1 U1 (MB-MC32D)
hdparm: 22.60 MB/s
dd: 15.8 MB/s
4k rand read: 8.64 MB/s
4k rand write: 3.22 MB/s

Samsung EVO Pro+ UHS-1 U3 (MB-MD32D)
hdparm: 22.57 MB/s
dd: 19.6 MB/s
4k rand read: 8.51 MB/s
4k rand write: 2.19 MB/s

Kingston 32GGB UHS-I U1 (SDC10G2)
hdparm: 22.3 MB/s
dd: 14.9 MB/s
4k rand read: 3.32 MB/s
4k rand write: 0.54 MB/s

Micro Center 32GB Class 10 (Y32GI37 L5H5090653)
hdparm: 11.36 MB/s
dd: 11.1 MB/s
4k rand read: 3.76 MB/s
4k rand write: 0.93 MB/s

Micro Center 16GB Class 10 (Y16GI24 D8H5060748)
hdparm: 22.81 MB/s
dd: 13.9 MB/s
4k rand read: 7.90 MB/s
4k rand write: 4.50 MB/s

Take-aways:
+ The results of the EVO+ and EVO Pro+ tests were similar to what Jeff got, validating the procedure.
++ Surprisingly, the cheap Micro Center 16GB card bested the EVO+ in 4k write, with nearly the same 4k read. I have 2 of these and tested both with similar results. One was bought about 2016 and the other in Nov 2018. These are $3.99 each (Dec 2018), so definitely worth buying if you live near a Micro Center store.
- Sadly, the 32GB version of the Micro Center card doesn't show the same performance.
-- The Kingston cards that came with my Pi kits are poor choices for usage.

Interesting! I’ll have to pick up some MC cards next time in there. I wonder if they use different suppliers for the different card sizes.

Do individual Pis have speed variation? I tested the same cards on a different Pi 3B+ and speeds consistently 4-5% lower.

Tried this for fun on my RPI 3b+ with Kingston 120 gb ssd :)

hdparm: - (no mmcblk0 found)
dd: 32.5 MB/s
4k read: 9614 kBytes/sec
4k write: 9042 kBytes/sec