Using PiBenchmarks.com for SBC disk performance testing

For many years, I've maintained some scripts to do basic disk benchmarking for SBCs, to test 1M and 4K sequential and random access speeds, since those are the two most relevant tests for the Linux workloads I run on my Pis.

I've been using this script for years, and it uses fio and iozone to get the metrics I need.

And from time to time, I would test a number of microSD cards on the Pi, or run tests on NVMe SSDs on the Pi, Rock 5 model B, or other SBCs. But my results were usually geared towards a single blog post or a video project.

In 2021 James Chambers set up PiBenchmarks to move to a more community-driven testing dataset.

You can run the following command on your SBC to test the boot storage and upload results directly to PiBenchmarks.com:

sudo curl https://raw.githubusercontent.com/TheRemote/PiBenchmarks/master/Storage.sh | sudo bash

Or, if you want to test a device like an SSD or NVMe drive (or even a hard disk!) connected via SAS, SATA, NVMe, or whatever interface, run:

curl -o Storage.sh https://raw.githubusercontent.com/TheRemote/PiBenchmarks/master/Storage.sh
chmod +x Storage.sh
sudo ./Storage.sh /path/to/mount/point

(For benchmarking, I usually format large devices in Linux with parted and don't run the benchmarks on a boot volume unless absolutely necessary.)

Looking through the results on PiBenchmarks.com, you can sort by fastest by SBC, fastest by device type, and drill down to averages and individual results. I have been running some benchmarks and uploading the results under my username geerlingguy, though there's no user authentication mechanism, so it seems the results operate by trust.

PiBenchmarks.com - geerlingguy results

And sometimes I see a crazy result where the average is like 25,000 but there's one result at like 90,000 running on a beefy X86 desktop machine! So the results need to be interpreted correctly and reproduced for maximum accuracy, but I do love this tool.

Comments

I will definatlly check out pibenchmarks.com. Thanks for the awesome post.

Thanks so much for the shout out Jeff! I figured I'd share some little known features that you and your readers might find interesting.

If you add /api/ before any URL you type on PiBenchmarks it will return whatever data you are requesting in pure JSON for programming. For example you can go to:

https://pibenchmarks.com/api/benchmark/66521/

This will show all the JSON for Jeff's benchmark on the Rock 5B he showed in the screenshot above. This would let you get all of the raw data essentially and work with it in the programming language of your choice.

Thanks again for sharing it Jeff!