Raspberry Pi microSD Card Shoot-out

1

Over the years I’ve used plenty of SD cards from various manufacturers at various prices. I never seem to have a spare card when I need one so I decided to buy a small selection and benchmark their performance. I was curious as to the differences and thought other people would be interested in the results.

The Cards

All the cards were new, microSD and, apart from the official NOOBs card, 16GB in capacity. I went for 16GB so they would be useful in the future in any other media devices while being a sensible price.

Brand – ModelCapacityClassPrice*Buy
Raspberry Pi microSD cardOfficial Raspberry Pi NOOBs8GBClass 10£4.00BUY
Kingston microSD cardKingston16GBClass 10£4.50BUY
Samsung EVO microSD cardSamsung EVO16GBClass 10£7.00BUY
SanDisk microSD cardSanDisk Ultra16GBClass 10£6.00BUY
Toshiba microSD cardToshiba16GBClass 10£3.90BUY

* The price is the amount I paid excluding post and packing. This obviously varies depending on supplier and what else you are ordering at the time. The Official Pi card was £5 delivered to my house while the others came from Amazon where the postage scheme is a bit more complicated!

The Tests

In order to give each card a fair chance I tested them on both my Windows 7 desktop PC, my Ubuntu laptop and a Raspberry Pi 2. On Windows I used CrystalDiskMark which is a free disk benchmark utility. On Ubuntu I used the standard “Disks” utility which has a benchmark facility. On the Pi I used the command line technique detailed on the RPi Wiki. The test sequence looked something like this :

  1. Format on Windows using SDFormatter
  2. Run H2testw to check capacity is genuine
  3. Run CrystalDiskMark on desktop PC
  4. Run benchmark on Ubuntu laptop
  5. Write latest Raspbian image using Win32DiskImager
  6. Boot on a Pi and run command line benchmarks

I used the same card readers and when I needed to use a microSD-SD converter I always used the one that came with the NOOBs card.

Fake Checking

There are lots of fake SD cards out there. I only purchase SD cards from sellers I trust but I tested all five cards using H2testw 1.4 to double check. Without checking using this tool you won’t be able to spot a fake card until it is too late. They all passed *phew*. As the checking involved writing over the entire card and then reading it all back I captured the read and write speeds reported after each test :

Brand – ModelCapacityWrite Speed (MB/s)Read Speed (MB/s)Rank
Raspberry Pi microSD cardOfficial Raspberry Pi NOOBs8GB9.17 17.4 4th
Kingston microSD cardKingston16GB12.217.42nd
Samsung EVO microSD cardSamsung EVO16GB8.9117.65th
SanDisk microSD cardSanDisk Ultra16GB9.5517.93rd
Toshiba microSD cardToshiba16GB12.417.31st

CrystalDiskMark Results

Official Raspberry Pi NOOBs 8GB, Class 10

CrystalDiskMark NOOBs SD Card

Kingston 16 GB Class 10

CrystalDiskMark Kingston SD Card

Samsung EVO 16GB, Class 10

CrystalDiskMark Samsung EVO SD Card

SanDisk Ultra 16 GB, Class 10

CrystalDiskMark Sandisk Ultra SD Card

Toshiba 16GB, Class 10

CrystalDiskMark Toshiba SD Card

The table below shows the results :

Brand – ModelAverage Speed (MB/s)Rank
Raspberry Pi microSD cardOfficial Raspberry Pi NOOBs40.2572nd
Kingston microSD cardKingston33.1195th
Samsung EVO microSD cardSamsung EVO39.0424th
SanDisk microSD cardSanDisk Ultra44.0001st
Toshiba microSD cardToshiba38.2213rd

Ubuntu Disk Benchmarking

The Ubuntu “Disks” utility includes a feature to “Benchmark Partition”. I ran this test using 100 samples/1MB sample size. The table below shows the results :

Brand – ModelRead Speed (MB/s)Write Speed (MB/s)Average (MB/s)Rank
Raspberry Pi microSD cardOfficial Raspberry Pi NOOBs 17.4 3.510.45 2
Kingston microSD cardKingston5
Samsung EVO microSD cardSamsung EVO17.3 3.310.303
SanDisk microSD cardSanDisk Ultra17.615.916.751
Toshiba microSD cardToshiba17.5 2.910.204

Raspbian Command Line Results

The final test was booting the card in a Raspberry Pi 2, extracting the device’s CID and then running some basic benchmarking. The commands for doing this are documented in the RPiWiki.

To read the card’s CID I used :

cd /sys/class/mmc_host/mmc?/mmc?:*
echo "man:$(cat manfid) oem:$(cat oemid) name:$(cat name) hwrev:$(cat hwrev) fwrev:$(cat fwrev)"

To measure the write speed :

sync; dd if=/dev/zero of=~/test.tmp bs=500K count=1024

To measure the read speed :

sync; echo 3 | sudo tee /proc/sys/vm/drop_caches
sync; time dd if=~/test.tmp of=/dev/null bs=500K count=1024

Finally I deleted the temporary file created by the above commands.

rm ~/test.tmp

The table below shows the results :

Brand – ModelDevice CIDWrite Speed (MB/s)Read Speed (MB/s)Rank
Raspberry Pi microSD cardOfficial Raspberry Pi NOOBsman:0x000003 oem:0x5344 name:SL08G hwrev:0x8 fwrev:0x09.419.05th
Kingston microSD cardKingstonman:0x000027 oem:0x5048 name:SD16G hwrev:0x3 fwrev:0x012.017.73rd
Samsung EVO microSD cardSamsung EVOman:0x00001b oem:0x534d name:00000 hwrev:0x1 fwrev:0x010.618.94th
SanDisk microSD cardSanDisk Ultraman:0x000003 oem:0x5344 name:SL16G hwrev:0x8 fwrev:0x012.619.02nd
Toshiba microSD cardToshibaman:0x000002 oem:0x544d name:SA16G hwrev:0x2 fwrev:0x216.017.61st

The Conclusion

Averaging the ranks in all tests gives up the final ranking :

CardRank
SanDisk Ultra 16GB1st
Toshiba 16GB2nd
Official NOOBs (SanDisk 8GB)3rd
Samsung EVO 16GB4th
Kingston 16GB4th

What my tests showed was that there is very little difference between the cards. I would be happy to use any of them in my Pi projects. Some of the differences are so slight I’m not sure I would ever notice in reality.

  • The cost of the card made no real difference to its performance. Why pay £7 for the Samsung EVO when the Toshiba is almost half the price?
  • The Kingston did badly in my “Ubuntu” test because the benchmarking utility threw an error with this card and I was unable to get any results.
  • The SanDisk Ultra only stole 1st place from the Toshiba due to the big difference in Write speed on the Ubuntu test.
  • How you judge the cards may determine on how relevant you think my tests are to real-world performance on the Pi. However even if you discard one of the tests (ie the Crystalmark under Windows) the top three are the same.

If I need more cards I would be happy picking one of the top three depending on availability and postage charges. The Samsung EVO and Kingston aren’t bad cards but I’ve just got no reason to favour them over the others.

Share.

1 Comment

Leave A Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.