Raspberry Pi 3 + Samsung Pro + 32GB MicroSD Overclocking to 99MHz

In my quest for maximum performing MicroSD cards in the Raspberry Pi I decided to purchase the top performing card in most benchmarks which is the Samsung Pro+. However, the common overclock for the Raspberry PI SD port to 100MHz does not seem to work with these cards and they become unstable. However, through a little bit of tweaking and experimentation, I found that these cards can be clocked to 99MHz and work just fine and provide a substantial performance boost.

Equipment

Samsung Pro Plus 32GB MicroSDHC Memory Card

Samsung Pro Plus unboxed
Samsung Pro Plus unboxed

Performance Difference

Before you go through the trouble of doing this you might wonder if this actually makes a performance difference and if it’s worth it. The answer is definitely yes. Here are my benchmarks from 80MHz to 99MHz:

Raspberry Pi Dramble microSD benchmarks
microSD clock: 80.000 MHz

Running hdparm test…

/dev/mmcblk0:
Timing buffered disk reads: 82 MB in 3.06 seconds = 26.82 MB/sec

Running dd test…

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

Running iozone test…
random random
kB reclen write rewrite read reread read write
102400 4 2322 2902 9067 8970 8864 1861

And now for the 99MHz clock:

Raspberry Pi Dramble microSD benchmarks
microSD clock: 99.000 MHz

Running hdparm test…

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

Running dd test…

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

Running iozone test…
random random
kB reclen write rewrite read reread read write
102400 4 2400 2917 9759 9695 9620 1952

iozone test complete.

microSD card benchmark complete!

As you can see there are some pretty big gains here. Our hdparm read tests went from 26MB/sec to 34MB/sec and our dd write and random 4k I/O tests also went up. This means whether you are running your Pi as a media server or just using it as an operating system you will see performance gains from increasing the clock to 99MHz. I have performed extensive testing at 99MHz such as upgrading a Kali distribution to kali-full (very disk intensive operation) and ran a Minecraft server with these settings and they are rock solid stable. I have no idea why at 100MHz these Samsung Pro cards suddenly stop working on the Raspberry Pi but 99MHz works just fine.

How do I do it?

The secret to getting the 99MHz clock has to do with your Raspberry Pi’s core speed. You want your core speed to be a divisor of 99. You do this using the Raspberry Pi’s config.txt located in the /boot/ folder. These benchmarks were taken with a pretty aggressive core overclock.

Please remember overclocking your Pi is at your own risk and I am not responsible for anything that happens!

Here are the settings I used on a Raspberry Pi 3:

# Overclock the SD card
dtparam=sd_overclock=99

# Configure overvoltage (needed for core and CPU overclocks)
over_voltage=4

# Overclock the core
core_freq=495

This is a pretty aggressive overclock. A more moderate one would be:

# Overclock the SD card
dtparam=sd_overclock=99

# Configure overvoltage (needed for core and CPU overclocks)
over_voltage=2

# Overclock the core
core_freq=396

A very conservative clock speed with no overvoltage at all would be

# Overclock the SD card
dtparam=sd_overclock=99

# Overclock the core
core_freq=297

The important thing is that your core_freq / 99 comes out to an even number. You don’t HAVE to have an even number, but when you run the benchmarks you will see that the Pi adjusts it to frequencies that are not even divisors. One I saw was 81.75MHz or something similar. Either way, I highly recommend clocking your Samsung Pro cards to 99MHz because even as fast as it is it can go even faster!

Instructions to Benchmark

My favorite benchmark is the Raspberry Pi Dramble benchmark. Running the benchmark on your Pi is only one line of code:

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

You can view MicroSD benchmarks and more about the benchmarking tool at this website: https://www.pidramble.com/wiki/benchmarks/microsd-cards

Leave a Reply

Your email address will not be published.