SDCard Choice

Continuing the discussion from Not booting after December update:

Sam, thanks for this interesting input. Without starting a new nuclear war, could we share experiences/advices on SDCard you could recommand for Raspberry Pi2 use with OSMC?

M.

Hi,

I personally recommend SanDisk or the NOOBS SD card (which is Samsung branded). They provide a good combination of performance and reliability. SanDisk cards certainly have ‘quirks’ as do most cards, but upstream kernel commits shows that these are dealt with quickly, and SanDisk cards are widespread enough that they are treated well.

Samsung cards provide very good performance, but @DBMandrake had to send one to the Raspberry Pi foundation recently as it was not working reliably under the SDHost driver. They are a bit more expensive than other cards, and while they boast faster speeds, you may not notice this with regular OSMC use.

And of course, we sell our own SD cards at the OSMC Store. They all come with a lifetime warranty and come preloaded with the latest version of OSMC, so you shouldn’t have any trouble with these cards and OSMC.

Sam

Using Samsung and Sandisk Class 10 UHS-1 cards in 2 RPI2 and a a RPI1 running sdhost fine for quite some time.

Would love to see some benchmark chart, with the main things that are important and overclock options people used (new driver option)

This way people can make a choice based on experience by the end user!

I had an issue with an older 32GB Samsung card where it gave occasional IO stalls, but that was occurring on both mmc and sdhost drivers.

I now have two new Samsung evo cards - one 32GB and the other 64GB and have no problems with either mmc or sdhost drivers and performance is excellent - faster than the sandisk and noobs cards I have.

Not sure if there is a benchmark chart but there is thread on the raspberry pi forums popcornmix linked me too a while ago, it’s a thread where users have submitted their own benchmark results.
SD Card Benchmarks - Raspberry Pi Forums
IMHO it is well worth the read (you may want to skip the first few pages until you get to the micro SD cards).
The general outcome is Samsung and SanDisk

1 Like

I have gathered a number of SD card benchmark results over time taken on a Pi 2 using iozone3:

The command that generated these results was:

iozone -e -I -a -s 50M -r 4k -r 512k -i 0 -i 1 -i 2 | tail -4 | head -2 | awk '{print "Block Size " $2"k", "Write " $3/1024, "Rewrite " $4/1024, "Read " $5/1024, "Reread " $6/1024, "Random Read " $7/1024, "Random Write "$8/1024}'

And the results are:

Samsung 32GB, sdhost:

Block Size 4k Write 3.0166 Rewrite 2.83203 Read 7.55762 Reread 7.58496 Random Read 7.53711 Random Write 2.91895
Block Size 512k Write 16.2861 Rewrite 18.2373 Read 21.8896 Reread 21.9932 Random Read 22.0068 Random Write 19.8418

Sandisk 16GB, sdhost:

Block Size 4k Write 2.05078 Rewrite 2.0918 Read 7.09473 Reread 7.04102 Random Read 7.06055 Random Write 1.25684
Block Size 512k Write 20.7129 Rewrite 21.083 Read 22.333 Reread 22.3271 Random Read 22.2871 Random Write 3.66699

8GB noobs, sdhost:

Block Size 4k Write 1.82617 Rewrite 1.7041 Read 6.1748 Reread 6.1875 Random Read 4.97363 Random Write 1.18359
Block Size 512k Write 4.30469 Rewrite 4.98828 Read 20.7617 Reread 20.6777 Random Read 20.6387 Random Write 4.92676

Samsung Evo 64GB - mmc:

Block Size 4k Write 2.2959 Rewrite 2.83594 Read 7.6543 Reread 7.69434 Random Read 7.64648 Random Write 2.87305
Block Size 512k Write 16.8262 Rewrite 16.0781 Read 18.624 Reread 18.6289 Random Read 18.625 Random Write 17.4707

Samsung Evo 64GB - sdhost

Block Size 4k Write 2.76953 Rewrite 3.05566 Read 6.66699 Reread 6.68164 Random Read 6.68457 Random Write 3.04883
Block Size 512k Write 15.9609 Rewrite 20.0488 Read 22.2471 Reread 22.2588 Random Read 22.2441 Random Write 20.3672

Random 4KB read/write performance (and to a lesser degree random 512KB read/write performance) is what varies most between cards and affects general Kodi performance the most - more than a 20 to 1 difference is possible between good and poor cards.

You should look for a card with a minimum 4KB random write performance of at least 1MB/sec, ideally 2MB/sec or more. The Samsung Evo card manages 3MB/sec in this metric. Poor cards are as slow as 0.1MB/sec or less for random 4KB write as they are only optimised for large contiguous writes such as you might get from a video camera.

1 Like

Just did my test with Kodi etc running:
Transcend Ultimate 600x 8GB microSDHC card (TS8GUSDHC10U1)

Block Size 4k Write 0.769531 Rewrite 0.967773 Read 4.6875 Reread 4.79004 Random Read 4.34863 Random Write 0.817383
Block Size 512k Write 5.93359 Rewrite 6.55762 Read 12.4844 Reread 12.4844 Random Read 12.4746 Random Write 6.02832

Transcend Premium 8GB microSDHC card (TS8GUSDC10)

Block Size 4k Write 1.625 Rewrite 1.73047 Read 5.38086 Reread 5.35352 Random Read 5.32617 Random Write 0.772461
Block Size 512k Write 11.8652 Rewrite 10.9795 Read 12.5244 Reread 12.4844 Random Read 12.502 Random Write 1.92773

Time for a Samsung Pro I guess :wink:

The Pro is the next model up from the Evo, right ? The Evo already maxes out the Pi’s SD card controller for large block reads/writes (about 22MB/sec) so unless it had even faster small random read/write performance than the Evo you might not see any actual difference in performance between the Evo and Pro used on a Pi. As I haven’t tested one I can’t be sure though.

The headline performance figures quoted for SD cards is usually large contiguous block read/write performance, small random read/write is usually not published and has to be benchmarked.

True, but the prices are very close here!
32GB Evo = € 13,20
32GB Evo+ = € 12,58
32GB Pro = € 13,99

And what I read from the RPi forum that those Pro’s are abit more reliable then the EVO’s.

[edit]
How stupid, when I compared the prices for you, I forgot to filter on MicroSD :expressionless:
Here are the correct prizes for the others…
32GB Evo+ = € 18,50
32GB Pro = € 24,50
[/edit]

I tested some stuff with flash-bench which is also used at the RPi forum.

Transcend Ultimate 600x 8GB microSDHC card in a RPi2 (TS8GUSDHC10U1)

Benchmark: Sequential read Limits: Total size: 512MB Duration: 60s
512.0MB processed in 40.36s (12.69MB/s), CPU: user 0.06%, sys 1.32%
Benchmark: Sequential write Limits: Total size: 512MB Duration: 60s
512.0MB processed in 60.35s (8.48MB/s), CPU: user 0.05%, sys 1.75%
Benchmark: Random read Limits: Total size: 512MB Duration: 60s
239.8MB processed in 60.06s (3.99MB/s), CPU: user 0.03%, sys 2.20%
Benchmark: Random write Limits: Total size: 512MB Duration: 60s
137.2MB processed in 136.62s (1.00MB/s), CPU: user 0.01%, sys 0.21%

Transcend Premium 8GB microSDHC card in a RPi2 (TS8GUSDC10)

Benchmark: Sequential read Limits: Total size: 512MB Duration: 60s
512.0MB processed in 40.48s (12.65MB/s), CPU: user 0.05%, sys 1.14%
Benchmark: Sequential write Limits: Total size: 512MB Duration: 60s
512.0MB processed in 44.41s (11.53MB/s), CPU: user 0.06%, sys 2.07%
Benchmark: Random read Limits: Total size: 512MB Duration: 60s
238.4MB processed in 60.01s (3.97MB/s), CPU: user 0.05%, sys 2.25%
Benchmark: Random write Limits: Total size: 512MB Duration: 60s
141.3MB processed in 127.28s (1.11MB/s), CPU: user 0.02%, sys 0.29%

Transcend Premium 8GB microSDHC card in a RPi1 (TS8GUSDC10)

Benchmark: Sequential read Limits: Total size: 512MB Duration: 60s
512.0MB processed in 36.15s (14.16MB/s), CPU: user 0.57%, sys 7.72%
Benchmark: Sequential write Limits: Total size: 512MB Duration: 60s
512.0MB processed in 42.32s (12.10MB/s), CPU: user 0.95%, sys 16.65%
Benchmark: Random read Limits: Total size: 512MB Duration: 60s
197.1MB processed in 60.07s (3.28MB/s), CPU: user 0.44%, sys 17.22%
Benchmark: Random write Limits: Total size: 512MB Duration: 60s
101.7MB processed in 206.95s (0.49MB/s), CPU: user 0.01%, sys 0.66%

Quite strange that the cheaper Premium outscores the pricier Ultimate :astonished:

More expensive is not necessarily better.

It’s a bit hard to relate those results to the iozone ones though, as it doesn’t say what the block size was for the random read/write test, which is a critical factor.

To get directly comparable results it’s necessary to use the same test software with the same options.

It should be 4k what I read in the RPi forum thread, but indeed … use one test method so comparing is easy.

Just ordered the Samsung EVO 32GB MicroSDHC, should arrive on the last day this year :tada:
Then I can run another test … hopefully with a better score :wink:

Hi guys,

well, inspired by the whole “some cards won’t boot after December update” situation and the following discussion, I thought I take my cards for a benchmarking spin. Personally, I wasn’t affected by the aforementioned problem as I am on Samsung Pros and SanDisk Ultras.

Now, the actual results kinda didn’t live up to what I was expecting reading the posts. The tests were performed with the line @DBMandrake posted in post #7. We’re talking RPI2 sporting OSMC December update and the official PI Foundation 2A power supply. Here are my findings:

SanDisk Ultra 16GB (SDSQUNC-016G-GZFMA):

Block Size 4k Write 0.245117 Rewrite 0.244141 Read 5.32031 Reread 5.32422 Random Read 4.77734 Random Write 0.237305
Block Size 512k Write 6.82129 Rewrite 4.79199 Read 18.0684 Reread 18.0527 Random Read 18.0234 Random Write 2.49121

Samsung Pro 16GB (MB-MG16D/EU)

Block Size 4k Write 1.61328 Rewrite 2.23047 Read 7.42383 Reread 7.3916 Random Read 7.37793 Random Write 2.32031
Block Size 512k Write 19.7021 Rewrite 15.043 Read 21.9824 Reread 21.9834 Random Read 21.9824 Random Write 12.8779

Is it just me or is this way off of what was to be expected? Especially the SanDisk is really really slow in terms of 4K performance right?

Here ist another thing. I noticed that the “library cleaning” was very fast at the beginning (say around September or October update). It took maybe 3 -5 seconds. Library is now similar in size, some stuff went, some is new but the it now takes about 15 seconds. No big deal, but maybe worth mentioning…

I have another 32GB Samsung Pro and a 8GB SanDisk Ultra that came with my Pi. I will put those to test as well. In the meantime, can somebody share his thoughts on this?

Cheers
Ralph

Your results look quite believable Ralph.

The Samsung Pro 16GB results look fine - a random 4KB write of 2.3MB/sec is very good, and random 512KB read and write of 19-22MB/sec is the maximum that the Pi’s SD controller can manage (at least without overclocking sdhost…) so the bottleneck here is the Pi not the card.

The disappointing 4KB random write performance of the Sandisk card of 0.23MB/sec is pretty typical of many cards unfortunately, I have a Kingston card that gets less than 0.1MB/sec for this! Kodi runs like a complete dog on this Kingston card so I only ever use it as the boot card for a USB/NFS test install. (Where it’s performance doesn’t matter)

Where you would notice poor random 4KB write most is transactional loads, such as scanning in a new library, where lots of small writes are made to the database.

Thanks for clearing that up mate. I was looking at 4k write on the Samsung part, which is a little less than the rewrite but that’s negligible. Guess I was somewhat expecting the up to 3 MB/s that you were mentioning in another post.

The SanDisk situation is a bit more frustrating especially because I blindly bought 3 of those. I had the 8GB Ultra Class 10 and I thought, well, you can’t go wrong with the 16GB ones, right? Apparently you can. Even more frustrating is this:

SanDisk 4GB Class 4 (almost identical to the SanDisk Ultra 16GB (SDSQUNC-016G-GZFMA))

Block Size 4k Write 0.733398 Rewrite 0.750977 Read 4.4707 Reread 4.45508 Random Read 4.20215 Random Write 0.423828 Block Size 512k Write 1.87012 Rewrite 1.61328 Read 18.4141 Reread 18.4111 Random Read 17.6484 Random Write 0.751953

Almost unbelievable… Would you say the bad performance of the 16GB SanDisk is the matter of this specific card, or the whole series? Anyway, I will return the other two cards and stick to the EVOs I guess…

Hi

I find SanDisk Ultra Class 10 to be quite fast. It would be good if you tested the SanDisks on the old MMC driver too, as the new driver may be impacting performance.

Sam

Hi Ralph,

just to ensure there is no overlook here. Are you using the sdhost driver or due to the recent back and forth by accident have the mmc activated?
Does dmesg | grep sdhost shows mmc0: sdhost-bcm2835 loaded - DMA enabled (>1)?

My Sandisk 8GB Class 10 shows:
Block Size 4k Write 1.54688 Rewrite 1.93555 Read 7.03809 Reread 7.19043 Random Read 7.06543 Random Write 0.87793 Block Size 512k Write 8.40918 Rewrite 7.19629 Read 21.8584 Reread 22.1406 Random Read 22.1094 Random Write 3.97363

I just noticed that some problem since you mentioned it … not that mine was 3-5 seconds … but it takes ages now :scream: