Benchmark Storage Performance on Linux

Linux Storage Benchmark
Linux Storage Benchmark

When attempting to determine storage performance on Linux there are common tests such as doing a DD write command and measuring the speed of that. These methods leave a lot to be desired and are especially bad at measuring random read/write performance (the most important for operating system / application performance).

I solved this problem for the Raspberry Pi by creating Pi Benchmarks. This is an open source benchmark that *does* measure random read/write performance as well as several other important factors (IOPS, etc.). We’ve collected many years worth of performance data across thousands of different drives including SSDs / HDDs / others. It’s enough information to be used to make important decisions about performance using hard data.

I’d like to announce that this exact same benchmark is now available for all devices! If you’d previously taken the benchmark on a PC or device other than a Raspberry Pi those results are now retroactively live on the site.

Benchmark Instructions

The benchmark can be ran with the following command:

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

If you want to choose which drive to test you can alternatively do:

wget https://raw.githubusercontent.com/TheRemote/PiBenchmarks/master/Storage.sh
chmod +x Storage.sh
sudo ./Storage.sh /path/to/storage

Comparing Benchmarks

PiBenchmarks.com - Benchmark #43289
PiBenchmarks.com – Benchmark #43289

Once the benchmark completes you will receive a score and a breakdown of the different performance measurements that are used to calculate that score. This will display immediately in the window you are taking the benchmark.

This score is meant to be compared with other scores at https://pibenchmarks.com. Once you take the benchmark within about a minute or two the result will show live on the site. If you click the score link it will take you to a detailed breakdown of each benchmark.

You can browse the site by drive, system board, type, and many other categories. It also has a search function!

Compatibility

The benchmarks compatibility had basically grown to all flavors of Linux that run on the Raspberry Pi. On these flavors the benchmark will retrieve any dependencies needed to perform the benchmark. This should work on most distros.

Known working ones include:

  • Ubuntu
  • Debian
  • Mint
  • Raspberry Pi OS
  • Arch Linux
  • Fenix
  • Kali
  • Manjaro
  • CentOS
  • Fedora
  • Alpine
  • Pop
  • GalliumOS
  • SparkyLinux
  • Armbian
  • Deepin
  • openSUSE
  • Garuda

I am definitely expecting problems though expanding this to PC. There are so many more flavors of Linux that run on PC. If you have a distro that is having trouble with it let me know in the comments and I will definitely get it working for that distro!

Conclusion

I’m very excited to be expanding the storage benchmark as I’ve been working toward this for years now. There are a handful of other benchmarking sites out there and none of them really worked the way I wanted them to for actually making meaningful comparisons so I created this benchmark with an emphasis on random read/write (OS/application) performance.

Thanks to everyone who had already taken this over the years even though the results didn’t display live yet! If you have ideas / requests / feedback definitely let me know here in the comments or on the GitHub issues page. I’m always looking to improve it!

Other Resources

Official GitHub Page

Benchmarking SBC (Single Board Computer) Storage Performance for Embedded Devices

guest

2 Comments
Inline Feedbacks
View all comments

Schugy
Schugy
3 months ago

It’s great that the benchmark works on PCs with almost any distro. There was no hdparm result on openSuse Leap 15.4 but my tiny 128 gb Samsung UFS card scored 7169 points. Maybe this error is the reason why the result wasn’t published. The script checked for apt and pacman but not for zypper. I also wonder whether it harms the internal SSD when it is trimmed 3 times in 5 minutes while testing a memory card in an external USB card reader. Thank you for the effort you put into this.