Benchmark Your MicroSD Cards – Fakes Everywhere!

For the past couple of weeks I have been putting together a Minecraft 1.12 Raspberry Pi Guide and have been using my several year old Samsung Evo 32GB MicroSD cards. After reading several blogs and benchmarks I decided to purchase some Samsung Evo+ 32GB cards off Amazon because they benchmarked better than my orange Evo cards I already have.

Let me start out by saying I love Amazon and am a Prime member and buy almost everything there. I bought two Evo+ 32GB cards from Amazon and received them very quickly as usual. However, once I started using them, I figured out that they were either fake or Samsung had revised the model and it performed terribly. I don’t just mean slightly underspec bad either. I mean worse than my Walgreens ghetto off the shelf cards I bought on clearance!

In this article I’m going to show you how to benchmark your SD card on the Raspberry Pi, and I’m also going to include how to use a popular utility to benchmark them on Windows if you don’t have a Raspberry Pi.

The Contenders

Samsung EVO 32GB MicroSD
Samsung EVO+ 32GB MicroSD

The front of the MicroSD cards
The front of the MicroSD cards
The back of the MicroSD cards
The back of the MicroSD cards

Unfortunately my camera is not good enough to capture the tiny inscriptions on the cards, so I will give them here:

  • 2x Samsung Evo 32GB
  • MB-MP32D
  • MBMPBGVEODFW-F
  • Made in Philippines
  • 2x Samsung Evo+ 32GB
  • MB-MC32D
  • MBMCBGVEDFCW-P
  • Made in Philippines
  • 1x EMTEC 16GB (Walgreens Clearance)
  • 1x EMTEC 64GB (Walgreens Clearance)

Benchmarking (Raspberry Pi)

On the Raspberry Pi there is a great script that will let you benchmark your SD card. It also contains a list of benchmarks for common cards on the market, including the Evo+. Check it out here: https://www.pidramble.com/wiki/benchmarks/microsd-cards

To run the script on your Pi, simply type:
curl https://raw.githubusercontent.com/geerlingguy/raspberry-pi-dramble/master/setup/benchmarks/microsd-benchmarks.sh | sudo bash

This script tests hdparm (direct read speed from the card without OS interference), ddwrite (Raspbian recommended way of testing SD cards), and iozone’s 4k R/W benchmarks.
4k read/write performance is extremely important for Raspberry Pis. Most MicroSD cards are meant for large sequential reads/writes like taking a photo/video in a camera. We are not interested in this performance usually for our purposes because an operating system makes many small random read writes. These tools test that performance as well.

Benchmarking on Windows

You can still benchmark your MicroSD cards on Windows if you do not use a Raspberry Pi. The most popular software to do so is called CrystalDiskMark and can be located here: http://crystalmark.info/software/CrystalDiskMark/index-e.html. It can also be set to test random 4k R/W performance so no matter what board you use or whatever you are using your card for it can give you an idea of how your card is performing.

Results

All of these tests were ran on the same Raspberry Pi 3 Rev B board with the SD reader overclocked to 100hz. Here is where things get interesting. Let’s start with my classic Samsung Evo 32GB:

Raspberry Pi Dramble microSD benchmarks
microSD clock: 100.000 MHz

Running hdparm test…

/dev/mmcblk0:
Timing buffered disk reads: 106 MB in 3.04 seconds = 34.88 MB/sec

Running dd test…

51200+0 records in
51200+0 records out
419430400 bytes (419 MB) copied, 24.6942 s, 17.0 MB/s

Running iozone test…
random random
kB reclen write rewrite read reread read write
102400 4 1630 3177 9648 9711 9707 3098

microSD card benchmark complete!

Okay, those numbers aren’t too bad! If you compare that with the benchmark page above I did really well with the years old orange Evo card!

Now let’s fire up the Evo+. I bet it’s going to scream!

Raspberry Pi Dramble microSD benchmarks
microSD clock: 100.000 MHz

Running hdparm test…

/dev/mmcblk0:
Timing buffered disk reads: 74 MB in 3.03 seconds = 24.46 MB/sec

Running dd test…

51200+0 records in
51200+0 records out
419430400 bytes (419 MB) copied, 51.3407 s, 8.2 MB/s

Running iozone test…
random random
kB reclen write rewrite read reread read write
102400 4 658 793 4899 4892 4552 653

Whoa…. that can’t be right. 8.2MB/sec on the ddwrite? 24.46MB/sec on the hdparm?! I must have a defective card, so I imaged the second card and ran it again:

Raspberry Pi Dramble microSD benchmarks
microSD clock: 100.000 MHz

Running hdparm test…

/dev/mmcblk0:
Timing buffered disk reads: 74 MB in 3.02 seconds = 24.49 MB/sec

Running dd test…

51200+0 records in
51200+0 records out
419430400 bytes (419 MB) copied, 53.3626 s, 7.9 MB/s

Running iozone test…
random random
kB reclen write rewrite read reread read write
102400 4 706 905 4555 4556 4345 640

Oh…. oh my. It’s the same or even worse in some places. What is going on?

Alright, well, lets try the EMTEC clearance cards and see how those do.

Raspberry Pi Dramble microSD benchmarks
microSD clock: 100.000 MHz

Running hdparm test…

/dev/mmcblk0:
Timing buffered disk reads: 90 MB in 3.06 seconds = 29.37 MB/sec

Running dd test…

51200+0 records in
51200+0 records out
419430400 bytes (419 MB) copied, 58.309 s, 7.2 MB/s

Running iozone test…

random random
kB reclen write rewrite read reread read write
102400 4 260 255 6664 6598 6017 251

iozone test complete.

microSD card benchmark complete!

Well, that did predictably poorly, but what is stunning is that those numbers are not much worse than the Samsung Evo+ cards I received. The random write was much slower, but the hdparm direct read was actually faster! And now for the final contender, the EMTEC 64GB:

Raspberry Pi Dramble microSD benchmarks
microSD clock: 100.000 MHz

Running hdparm test…

/dev/mmcblk0:
Timing buffered disk reads: 94 MB in 3.04 seconds = 30.89 MB/sec

Running dd test…

51200+0 records in
51200+0 records out
419430400 bytes (419 MB) copied, 39.9065 s, 10.5 MB/s

Running iozone test…

random random
kB reclen write rewrite read reread read write
102400 4 224 218 7108 7150 6218 220

So, wait a minute, wow! The EMTEC clearance cards actually beat the Samsung Evo+ by nearly 2MB on the dd test, and nearly 5MB on the HDPARM test? That should not be possible. The Evo+ according to most benchmarks is one of the fastest cards on the market. The Evo+ is supposed to easily beat my orange Evos but was slower than the EMTEC clearance cards in every category except for the iozone 4k read/write.

Conclusions

I went to Amazon and immediately ran for the return button only to find out these items could not be returned. I emailed Amazon my benchmarks and told them that these cards must be fake. Amazon was very good and immediately refunded my money and did not require me to return the cards. But are they actually fake? Or did Samsung change their manufacturing process?

After a bunch of research on Google, I stumbled across many others with the same issue. It seems there are tons of fakes of these cards going around and even found similar people who bought them on Amazon/eBay/you name it and got the same performance.

It looks like some people opted to buy it directly from Samsung’s web site (more expensive), or from big electronic chain stores with verified supply chains. This is my recommendation. I recommend you all benchmark your SD cards and find out if you are getting the performance you should be out of your cards and make sure that you don’t have a fake. With so many third party resellers online and no verified supply chain you have no idea what you are getting so unless you buy it direct from the manufacturer or buy it from a giant chain store with a verified supply chain. Otherwise, BUYER BEWARE!

Leave a Reply

Your email address will not be published.