Raspberry Pi Storage Benchmarks + Benchmarking Script

Pi Benchmark 2019 Contenders

Storage options continue to advance at a very fast pace. We’ve seen a lot of changes in the past couple of years with viable storage options for your Pi. Solid state drives are now so cheap that it can be cheaper to outfit your Pi with a SSD than buy a MicroSD card! MicroSD cards also continue to evolve with the new “Application Class” A1 and A2 certifications.

This year I wanted to do something more than just benchmark my ever-growing pile of MicroSD cards and solid state drives. Although I have a wide variety of storage to test I don’t have everything! So this time I created a benchmark that gives you a easy to compare score and anonymously submits the storage specifications and the results to this site.

Running the benchmark is extremely easy. Run the following command on your Pi:

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

Current Benchmark Results


2020 benchmarks are available at 2020’s Fastest Raspberry Pi 4 Storage SD / SSD Benchmarks

Navigating the Results

As the list of submissions continues to grow there can be a lot of data to sift through. I’ve provided a filter on the table to help narrow some of that down.

To only see Micro SD cards click the “Product” drop down from the options above the table and choose “SD”. This will filter out everything but Micro SD cards. To see solid state choose “SSD”. You can also search by manufacturer, brand, etc.

I have also offered the option to export the entire results table to Excel and other formats. If you perform any advanced analysis that you think would be useful to share be sure to leave a comment with what you found and I will credit you and post it for everyone!


The benchmark heavily favors 4k random reads / writes. This is because for application and operating system performance this is by far the most important metric. Traditional benchmarking methods like dd write, hdparm read tests, etc. are very poor indicators of everyday performance. What matters is not how fast your storage can push through giant files but how fast it can respond to random input that asks it to read / write anywhere on the disk.

To understand why we need to think of what your Raspberry Pi is usually doing. Most applications and services are not constantly writing giant sequential files which is what traditional synthetic benchmarks measure. Your Raspberry Pi is usually updating log files, reading data from different parts of the disk for various applications and services, responding to user input, etc. To your disk drive this behavior is considered “random” since it has no idea what it will be asked to read / write next.

Storage devices doing large sequential I/O like transferring files utilize extensive caching and other techniques to speed up these kinds of operations. Unfortunately these techniques do not work when the operating system and storage device doesn’t know what users / applications / services might request next. The storage device has no way to know or prepare for what your application will want next so it has to read it raw from the disk and can’t rely on cache.

This is why in our benchmarking we want to look very hard at 4k random read / writes. This is what will determine how “snappy” the Pi feels as you perform various tasks. Fast 4k random IO devices feel and perform much better than a device with huge throughput but poor random I/O performance.

The current scoring method is:

(DDWriteSpeed * 1024 + fio4kRandReadIOPS * 4 + fio4kRandWriteIOPS * 10 + io4kRead + io4kWrite + IO4kRandRead * 4 + IO4kRandWrite * 10) / 100


The benchmark runs a few different tests in order to get a good overall idea of storage performance. It runs 4k read / write and random read / write in two separate benchmarks to verify the results and reduce variance. Here are the tests used in the benchmark:

FIO – An industry standard used for true storage benchmarking vs. just measuring throughput (like DD Write and HDParm — not considered true benchmarks). The benchmark tests 4k block size sequential read/write and random read/write. Gives a result in IOPS which stands for Input/Output Operations Per Second

IOZone – A very popular benchmarking program. We also test 4k block size sequential read / write and 4k random read / writes here to verify our results are close to the FIO results

DD Write – Basic throughput test of writing 0’s as fast as possible

HD Parm – Tests disk read throughput in direct mode (avoids caching)

Recommendations – 2019

The top recommendation this year for Pi storage will depend on your form factor. Let’s break it down:

Raspberry Pi 4

The Raspberry Pi 4 is available in different memory configurations all the way up to 8 GB. It’s about the size of a credit card and uses an extremely low amount of power making it ideal for all sorts of projects and ideas!

Links: AliExpress.com*, Amazon.ae*, Amazon.ca*, Amazon.com*, Amazon.com.au*, Amazon.com.mx*, Amazon.co.jp*, Amazon.co.uk*, Amazon.de*, Amazon.es*, Amazon.fr*, Amazon.in*, Amazon.it*, Amazon.nl*, Amazon.pl*, Amazon.sa*, Amazon.se*, Amazon.sg*

My project is stationary (servers, media centers, etc.)

The best choice is a 2.5″ Solid State drive connected via USB. This is the highest performance choice and is very cheap.

If you have a Pi 3B+ or older the benchmarks show that any solid state drive is so fast that it maxes out the Raspberry Pi’s USB 2.0 bus. I’ll talk about this more in the SSD analysis section below but basically it’s best to get the cheapest option while still picking a reliable brand.

If you have a Pi 4 then the performance of the solid state that you get is a performance factor. Differences between drive quality can affect performance but the performance of *any* quality solid state drive is going to crush SD cards and USB flash drives.

The best way to find good fast drives is to go to the full Pi Storage Benchmark results and soft by drive and see which ones score higher and by how much. When you look at prices you can determine if you want to pay extra for the highest classes of performance and where your sweet spot is.

The new Pi 4 has a much faster USB 3.0 bus on it that allows solid state’s potential to be unleashed leading to huge performance gains.

Here is my current recommendation:

Kingston A400 2.5″ SATA SSD

The Kingston A400 has been a great drive to use with the Pi for years. It’s reliable, widely available around the world, has low power requirements and performs very well. It’s also very affordable. This drive has been benchmarked over 1000 times at storage.jamesachambers.com and is the #1 most popular SSD among the Pi community!

Links: AliExpress.com*, Amazon.ae*, Amazon.ca*, Amazon.com*, Amazon.com.au*, Amazon.com.mx*, Amazon.co.jp*, Amazon.co.uk*, Amazon.de*, Amazon.es*, Amazon.fr*, Amazon.in*, Amazon.it*, Amazon.nl*, Amazon.pl*, Amazon.sa*, Amazon.se*, Amazon.sg*

StarTech 2.5″ SATA to USB 3.0/3.1 Adapter

Both the USB 3.0 and USB 3.1 variants of the StarTech 2.5″ SATA adapter work well with the Pi 4. I’ve used the 3.0 variant with my Pi 4 since launch and it has always worked well. I later bought the 3.1 variant and had the same positive experience. These two adapter variants are my go to adapters for all my Pi related projects that need a fast and easy 2.5″ SATA SSD!

Links: AliExpress.com*, Amazon.ae*, Amazon.ca*, Amazon.cn, Amazon.com*, Amazon.com.au*, Amazon.com.mx*, Amazon.co.jp*, Amazon.co.uk*, Amazon.de*, Amazon.es*, Amazon.fr*, Amazon.in*, Amazon.it*, Amazon.nl*, Amazon.pl*, Amazon.sa*, Amazon.se*, Amazon.sg*

My project moves around but can fit a USB drive

Many USB drives are a poor choice for Pi storage media because they have very poor 4k random read / write performance. Micro SD cards are faster than a run of the mill / genreic flash drive.

That being said, with the new Raspberry Pi 4 the USB 3.0 bus is having really high end flash drives outperforming Micro SD cards. On the 3B+ and older boards without the new bus USB flash drives are usually not a good choice (even the good ones).

One drive that shows great performance even on a 3B+ is a special USB drive by SanDisk that is actually a solid state drive on a stick. It has the same size / dimensions of a regular flash drive but uses solid state storage internally giving it great 4k random read / write performance. I own it and it benchmarked at 2330 putting it more than double any MicroSD card and only a couple hundred points below Samsung Pro 2.5″ SSDs.

SanDisk Extreme Pro SSD

The SanDisk Extreme Pro USB SSD is a true solid state drive. This is different than a typical “flash drive” which uses extremely cheap memory and has very low random I/O performance/throughput compared to a real solid state drive. I’ve used both the USB 3.1 and USB 3.2 variants with the Pi successfully and they benchmark very well!

Links: AliExpress.com*, Amazon.ae*, Amazon.ca*, Amazon.com*, Amazon.com.au*, Amazon.com.mx*, Amazon.co.jp*, Amazon.co.uk*, Amazon.de*, Amazon.es*, Amazon.fr*, Amazon.in,* Amazon.it*, Amazon.nl*, Amazon.pl*, Amazon.sa*, Amazon.se*, Amazon.sg*

My project is small form factor and can’t use USB adapters or storage

There’s lots of cool projects out there that using any type of USB attached storage is not an option. For these projects Micro SD is still king. The good news is that Micro SD has had some recent developments such as the A1 / A2 application class cards. A2 is not supported by Raspberry Pi yet (or almost anything else really) so A1 is the important mark to hit.

I’ll cover Micro SD in depth in the Micro SD analysis section but here is the current recommendation:

SanDisk Extreme A1 SD Card

The SanDisk Extreme A1-A2 SD card has the best scoring SD card on storage.jamesachambers.com for years and is second in popularity only to the SanDisk Ultra (often included in combo kits). The application class (A1) means random I/O speeds (very important when running an OS) have to meet a higher standard. There’s no benefit on the Pi for A2 right now so get whichever is cheaper/available.

Links: AliExpress.com*, Amazon.ae*, Amazon.ca*, Amazon.com*, Amazon.com.au*, Amazon.com.mx*, Amazon.co.jp*, Amazon.co.uk*, Amazon.de*, Amazon.es*, Amazon.fr*, Amazon.in*, Amazon.it*, Amazon.nl*, Amazon.pl*, Amazon.sa*, Amazon.se*, Amazon.sg*

The SanDisk Extreme A1 Application Class version continues to dominate other Micro SD cards on the benchmarking charts.

SSD Analysis

SSD benchmarking so far has shown that there is not much of a difference between an older cheap SSD like a outdated mSATA Hynix drive and top of the line drives like the Samsung 850 Pro. The difference from the oldest cheap drives and top of the line was only about 100 points.

This is because the Pi has a USB 2.0 bus. Even the slowest oldest SSDs are so fast that they hit the maximum possible data transfer rate over USB 2.0. Because of this it makes sense to buy the cheapest SSD drive possible that is still reliable. See my recommendations section for ideas.

Micro SD Analysis

The Micro SD market has always been a difficult place for Raspberry Pi owners. Since there traditionally was no classification that indicated random read / write performance we simply had to buy different cards and benchmark them.

The problem with that was that Micro SD manufacturing processes change. They can even change from batch to batch. The 2015 Samsung Evo cards were a good example of this. We found a card with amazing 4k random read / write performance but one day they changed their process and the new ones are not even close.

Fortunately things have recently improved for us somewhat because of, well, smartphones! Let’s talk about the application class.

Micro SD A1 / A2 Application Class

Application class cards were created because smartphones have become one of the top use cases for SD cards. Many people run applications directly off their SD card or have applications that keep their active storage on there. Tech savvy smartphone users sick of slow performing cards demanded a speed class was created to measure this type of performance.

This is great for us Pi owners because this type of use is 4k random reads / writes and is exactly the same as what we do on the Pi. Thank you smartphone owners!

It’s important to note that right now the Pi (and pretty much everything else) cannot currently make use of the new A2 standard as it requires special driver support to take advantage of the new features. I have benchmarked both the SanDisk Extreme and the SanDisk Extreme Pro A2 cards in my benchmark results and they did not perform any better than the A1 cards because of this.

Lets look at the application class performance features:

The new A1 application cards are fantastic and performing very well on the benchmark. So far every application card benchmarked has hit the minimum A1 targets. If you are looking for a better performing SD card then A1 is the way to go.

Video Class (V30, etc) and U Class (U1 and U3)

These don’t matter for the Pi. Basically at all. They are measurements for maximum sequential I/O throughput. For example if you have a video camera that needs to record in 4k it will need a very high sequential I/O maximum transfer rate.

The Pi depends on 4k block size random I/O as I’ve explained in earlier sections and these classifications don’t measure that. Indeed, my 3 worst performers on the benchmark are all U1 cards and got easily stomped (nearly doubled in score) by a SanDisk Ultra Class 10.

This doesn’t mean U capable cards are bad. The Samsung Pro+ is a U1 class card and performed incredibly well on the benchmark. It just means that the Samsung Pro+ has much higher quality memory / a better controller inside it.

The conclusion is that unlike the application class these classifications will not tell you if your card is going to be good or awful for the Pi. You need to benchmark them to know!

Picking the Fastest Micro SD Card

This can be difficult as manufacturers change their manufacturing processes and start using a different type of memory or on-board storage controller (likely to a cheaper one) for these cards. This can even happen on the same product line (such as the Samsung Evo) so manufacturer date is important when looking at these.

For example, the Samsung Evo+ was terrible a few years ago but more recent batches are scoring very well. The Samsung Evo “orange” older cards tend to be faster than the newer ones.

This is a big reason why I created this benchmark. With a bigger sample size of cards we as a community can pool our card benchmarks together and figure out which manufacturers and lines of cards are getting the good memory / on-board storage controllers.

Since manufacturers change their processes all the time to keep up we will need to watch the benchmark results and see where the “good stuff” is going and when the card quality quietly changes!

If you are currently in the market for a Micro SD card check the recommendations and the results table to see which current batches are performing the highest!

How you can contribute

The best way to help contribute to this research is to run the benchmark on your own Micro SD cards.

We are especially looking for the more unusual Micro SD card brands. Right now there are several manufacturers of Micro SD cards that have as yet to be identified. This information isn’t published anywhere publicly so the only way we can get them is through benchmarks submitted by you!

It is important to fill out everything you can see for the “Brand” question that comes up when you run the benchmark. Look at your card and fill in any branding markings you see.

This helps me identify unusual card vendors and add them to the script so they can be identified to help everyone compare between the different cards.


  • Use a solid state drive (SSD) if possible. Instructions on how to set one up with the Pi are in this article
  • SanDisk A1 application class cards are dominating the Micro SD results so far
  • The only sensible Micro SD cards to buy right now are application class (A1) due to their outstanding 4k blocksize I/O performance vs. older cards.
  • Micro SD card performance among the same brands and even the same models varied wildly depending on the manufacturing date. Memory quality and storage controller performance vary from batch to batch. Generally the newer they are the higher they tend to score on the benchmark as card technology is always improving.
  • The Pi cannot utilize A2 so don’t pay extra for it (although sometimes the A2 versions are cheaper). A2 cards will run in A1 mode on the Pi.
  • USB flash drives are terrible choices for Pi storage
  • Old “spinny disk” 5400 RPM and 7200 RPM HDDs underperform decent Micro SD cards

With the new benchmark we should be able to learn a lot more about storage on the Pi. Micro SD cards seem to be the area we need to learn the most about. As more people run the benchmark we’ll continue to analyze and revise recommendations based on what everyone finds!

80 thoughts on “Raspberry Pi Storage Benchmarks + Benchmarking Script”

  1. Hello, Thanks for developing this test tool.
    My result numbers are very different compared to the Actual file transfer speed with SFTP tools (actual is 13 to 14MB/s), with various file types & sizes. What am I not doing right?

    Result from your tools is below.
    Category Test Result
    HDParm Disk Read 282.78 MB/s
    HDParm Cached Disk Read 245.26 MB/s
    DD Disk Write 176 MB/s
    FIO 4k random read 11466 IOPS (45867 KB/s)
    FIO 4k random write 7816 IOPS (31267 KB/s)
    IOZone 4k read 25375 KB/s
    IOZone 4k write 24770 KB/s
    IOZone 4k random read 21221 KB/s
    IOZone 4k random write 31930 KB/s


    1. Hey sennai,

      Your disk testing numbers look good! It doesn’t look like the disk throughput is the bottleneck you are experiencing with SFTP tools. Have you tried running any internet speed tests like speedtest-cli? You can see a list of a few different ones to try here: https://opensource.com/article/20/1/internet-speed-tests

      I’m guessing that you may hit some of the same bottlenecks with the speed test but that would be a good way to narrow things down. Even your random I/O speeds seem to be higher than the SFTP tools transfer speeds you are getting. Is this a 100 MB/s / gigabit switch you’re connected to or are you using WiFi?

  2. hi james passed 13000 score mark with a ORICO M2PAC3-G20(ASM2364) + Samsung 980 Pro 1TB
    vanilla config yields 9000-10000. aside from a good power supply, cooling, CPU overclock, and modest power consumption reductions (no keyboard use uart) most gains come from software.

    some of these seemed helpful:
    -rootfs on xfs partition with some options (defaults,noatime,nodiratime,logbufs=8,logbsize=256k,largeio,swalloc,inode64,allocsize=1g)
    -echo none > /sys/block/sda/queue/scheduler
    -echo 4096 > /sys/block/sda/queue/read_ahead_kb

    1. Hey Ken,

      That’s a fantastic score, wow!

      I have not seen some of those kernel parameters and boot flags before but looking through them they are extremely interesting. I’m curious and will have to test some of these on my configurations like changing the scheduler, the read ahead size and some of those boot flags. Thanks for sharing, I think yours is one of the highest scores ever!

  3. Hello,
    please delete Benchmark #38293.
    I thought it would already boot from SSD but it did boot still from SD (SanDisk Ultra 32 GB).
    The benchmark #38294 is the correct one with respect to the Note.


    1. Hey Harry,

      Don’t sweat it, this happens a lot! I use the storage benchmark in a lot of my guides to help people verify their configuration and make sure they’re booted off the SSD and getting the performance they should. It is pretty hard to tell sometimes and is not at all obvious without running some terminal commands.

      I’ve removed the benchmark for you. Take care!

  4. Amazing article and storage performance database! Thank you very much for your excellent work and all the best for 2021!

  5. Hi,
    already on the 3rd day I try to upload the results to the server but it only loaded me after the first test only the SD card on the Raspberry Pi4. Do you have an outage? Or how many hours does it take for the result to appear on the web?


    Category test result
    HDParm disk read 146.43 MB / s
    HDParm disk read with 137.27 MB / s cache
    DD Disk Write 123 MB / s
    FIO 4k random reading 5056 IOPS (20227 KB / s)
    FIO 4k random 5419 IOPS (21677 KB / s)
    IOZone 4k reads 25187 kB / s
    IOZone 4k entry 17711 KB / s
    Random reading IOZone 4k 17413 kB / s
    Random entry IOZone 4k 22883 KB / s

    Score: 5417

    Compare with previous comparative results on:

    1. Hey Ondra,

      They usually appear immediately unless the device isn’t recognized yet. Which device were you testing that did not appear? I can definitely go in there and mark that one as identified!

      1. It already recorded my test. Don’t you have any protection there so that you can’t do 5 tests in a row in one day or in a month?

        1. Hey Ondra,

          Great question. It does have protection for that and basically only takes your highest score for each device. This makes it okay to run the benchmark as many times as you want on that device and it won’t skew the results in any way!

  6. benchmark graph/table is missing

    also it would be nice if you made you benchmark site searchable, sortable etc. It’s hard to find a drive at the moment and cannot sort in any way.

    For example portable is useless now, it just ahs a list of the top same drive over and over in SSD. how do I find USB pendrives, or a specific type to get the data.
    I think it’s got a bit bigger than it started 😉

    Very useful though just can’t get to the data.

  7. A few other things:

    1. How do I test something other than the SD drive the system is running from? (i.e. I want to plug in a SSD via USB-3 and test it, etc.)

    As it is, this test seems to automagically test the primary root device, like it or not.

    Note that this has been mentioned before and, as of yet, I have not seen an answer.

    2. How do I *NOT* submit results? (i.e. I’m figuring out how to use this thing, or haven’t looked at the brand/spec of the device I’m testing.)

    3. Are the resultant scripts resident on my device? (so that i can re-run them, or offer modifications.)

  8. I have now dug up a Pi-4 (4 gig) in a 7″ display enclosure tgat I can pop-out and use for these metrics.

    This leaves me with one last question that is not answered in your (otherwise excellent!) article anywhere:

    What is the configuration/setup required to run the test?

    In other words, if I want to benchmark a particular SD card, do I use a USB to SD adapter? Do I have to load up Buster on every single card I want to test and boot from each and every one so that it runs “natively”?

    If my tests are going to be even CLOSE to valid, I need to test the exact same way you are. Otherwise, my tests are going to be waaay over HERE while your tests are waaaay over THERE, and nobody will be able to tell why.

    I’d much rather know that *before* I start testing if I am going to have to disassemble my system and clone a s-load of cards.

    Thanks again for all your help, and for an excellent article!

    Jim “JR”

  9. Phenomenal article! I know I will be linking to it from some other blogs I haunt where this question is constantly arising.

    My primary use for the Pi, (at least right now), is as a robotics platform using the Dexter GoPiGo (https://www.dexterindustries.com/), a great robot with an excellent on-line community.

    What I would like to do is, somehow or other, “pre-qualify” devices using your standard, but without digging up a Pi and hooking it up just to use as a test bed. I would like to be able to set up the device via USB on either Windows (10) or Linux (Mint, 18+) and test various configurations of adapter and/or device. Now, obviously this would not be “exactly” like the Pi, but hopefully would allow me to exclude obvious punters and wannabees before testing on the Pi itself.

    Is this possible somehow?


    1. Hey Jim,

      This should definitely be possible. I’ve wrote the script to actually be pretty platform independent. The results won’t show up on the public web site if it’s not a Pi but you will absolutely still get a comparable score from the script as-is. I believe Mint should work although I don’t know that I’ve specifically tested it but I believe I have seen some existing submissions from it in the database.

      If you use a desktop computer as a test bench your score will be absolutely off the charts (compared to a Pi) at like 50,000+ points in some cases but it is measured the exact same way as on the Pi (measures 4k read/write and rand r/w) so you will still be able to eliminate punters and wannabes.

      I’d say to give the script a try on a test bench as-is and if all goes well you should get a result! If you have any issues let me know as I definitely adjust the script whenever we find platforms that aren’t working on there.

      Thanks for the kind words on the article and also on my CenturyLink article, cheers!


      1. I will try that. (Using the script on Mint)

        Just for grins and giggles, I downloaded the Crystal DiskMark 7.0 (stand-alone) drive benchmark and ran it on a few devices I have.

        Trying to make it as “similar” to the Pi as possible, I limited the tests to four queues and four threads / one queue and one thread. (It wanted 32 queues and a zillion threads. . .)

        I am curious as to how similar this is to the testing you’ve seen – is this a reasonably accurate model?

        I tested:
        An older OEM Samsung 128 GB SSD
        An older OEM Seagate Momentus 160 GB HDD
        A Micro Center branded 128 GB USB 3.0 flash drive just for the heck of it.

        Results: (Compiled from several DiskMark result reports)

        CrystalDiskMark 7.0.0 x64 (C) 2007-2019 hiyohiyo
        Crystal Dew World: https://crystalmark.info/
        * MB/s = 1,000,000 bytes/s [SATA/600 = 600,000,000 bytes/s]
        * KB = 1000 bytes, KiB = 1024 bytes

        Profile: Default
        Test: 1 GiB (x5) [Interval: 5 sec]
        Date: 2020/09/27 11:57:20
        OS: Windows 10 Professional [10.0 Build 18363] (x64)
        System: HP EliteBook 8570p with 16 GB Crucial DDR3 RAM with an i7 processor running at 2.7 gHz.

        All drives were tested twice using 4K random writes to a 1 gig file:
        1. Four queues – four threads
        2. One queue – one thread

        Both the SSD and the HDD were tested using the USB 3.0-SATA interface card
        from an un-branded 2.5″ drive enclosure using an InitIO interface chip.

        All devices were tested using the same USB 3.n port on my laptop.

        Sequential tests were not performed.


        Samsung 2.5″ 128GB SSD
        Model MZ-7PC1280/0H1

        Random 4KiB (Q= 4, T= 4): 15.925 MB/s [ 3887.9 IOPS]
        Random 4KiB (Q= 1, T= 1): 6.449 MB/s [ 1574.5 IOPS]

        Random 4KiB (Q= 4, T= 4): 13.459 MB/s [ 3285.9 IOPS]
        Random 4KiB (Q= 1, T= 1): 8.406 MB/s [ 2052.2 IOPS]


        Seagate Momentus 160GB HDD
        Model 5400.3

        Random 4KiB (Q= 4, T= 4): 0.732 MB/s [ 178.7 IOPS]
        Random 4KiB (Q= 1, T= 1): 0.432 MB/s [ 105.5 IOPS]

        Random 4KiB (Q= 4, T= 4): 0.583 MB/s [ 142.3 IOPS]
        Random 4KiB (Q= 1, T= 1): 0.536 MB/s [ 130.9 IOPS]


        Micro Center store branded USB 3.0 128GB USB flash drive

        Random 4KiB (Q= 4, T= 4): 6.780 MB/s [ 1655.3 IOPS]
        Random 4KiB (Q= 1, T= 1): 5.087 MB/s [ 1241.9 IOPS]

        Random 4KiB (Q= 4, T= 4): 0.009 MB/s [ 2.2 IOPS]
        Random 4KiB (Q= 1, T= 1): 0.016 MB/s [ 3.9 IOPS]


        1. As expected, the SSD, (even though a cheap drive included in the OEM install), absolutely CRUSHED everything else in sight.

        2. The Seagate Momentus HDD performance was much worse than I expected.

        3. The Micro Center Flash Drive actually posted respectable read numbers, though the write numbers STINK – which I expected, based on previous experience reading and writing to the device.

        Bonus Test!

        I accidentally ran one test without changing the drive from the default C: drive – a top-end, (at the time), Crucial MX-300 series 2T SSD that set me back many hundreds of dollars when I bought it. I thought I was testing the Seagate HDD and I said to myself, “Darn! I didn’t expect those numbers to be THAT high. . .”


        Crucial MX-300 2 TB SSD on the laptop’s internal SATA interface with all the special drivers and enhancements installed:

        Random 4KiB (Q= 4, T= 4): 343.247 MB/s [ 83800.5 IOPS]
        Random 4KiB (Q= 1, T= 1): 19.176 MB/s [ 4681.6 IOPS]

        Random 4KiB (Q= 4, T= 4): 330.630 MB/s [ 80720.2 IOPS]
        Random 4KiB (Q= 1, T= 1): 54.967 MB/s [ 13419.7 IOPS]

        1. One other thing that I forgot to mention – which can be especially relevant if you’re using the Pi in a remote/battery-operated configuration:

          SSD drives are almost as power-hungry as their 3.25″ “full size” mechanical brothers.

          For comparison:
          * My Samsung 2.5″, 128 GB SSD has a rated current draw of *1.5 amps*, all by it’s little lonesome, as specified by the label on the drive itself.

          * The Seagate 2.5″ 160 GB “spinny disk” hard drive has a rated nominal current draw of only half an amp, (0.487 amps), with a “you gotta be KILLING me!” absolute maximum of one ampere, as specified by Seagate’s data sheet for the drive series.

          As much as I’d LOVE to use something like that SSD on my GoPiGo robot, it would crush my ‘bot’s battery life faster than a spinning 3D LIDAR ranging/mapping array would!

  10. This is a great tool, thank you for the hard work!

    I wanted to post to make sure you know the website SSL cert expired on 5/23/2020. It can be bypassed in Chromium browsers but Firefox blocks it completely.

  11. I ran your benchmark on my SD card four days ago (May 17th) and found the results of that benchmark on your site (both old and new). Today, I added a SN750 to my Pi, copied the SD to it, and set the SN750 as root. Then I rebooted and ran your benchmark again.

    I can’t find my new benchmark on either site. I didn’t use the same “note” or “alias” for the second benchmark. Any idea why the new benchmark isn’t showing up?

    1. Hey Jon,

      The site may be missing the SN750 model. I’m behind on getting pictures and adding new models but it’s on my to do list.

      All results are still stored safely and will show up as soon as I add in the drive info!

  12. Hello,
    I have a Qnine USB 3.1 Type-C to NVMe M.2 enclosure for a Western Digital WD Blue SN550 500GB and have it installed on my Raspberry Pi 4, connected to one of the USB 3.0 ports.

    However, I don’t get great speed results, score around 2500, it goes slightly higher with quirks but it’s as though it’s connected to the USB 2.0 port:

    Category Test Result
    HDParm Disk Read 33.25 MB/s
    HDParm Cached Disk Read 33.57 MB/s

    Anyone else has this set u p ? If not, can anyone recommend another enclosure for the WD.


  13. Hi, have’d use Berryboot for install a debian on iscsi device. Work good, it’s fast (rpi3). But How fast? Well, after a short search i got here.
    Unfortunately the benchmark does not report all the values. Could you take a look and get him to cooperate? Tnx

  14. Thanks for this, James. I’m a newcomer to this whole world with an idea of what I want. Your blog has been really helpful clarifying it all in tangible terms.

    Question: what are your thoughts on something like the x825 expansion board, like this:


    Is there any reason to go this route vs. just using an adapter cable like you’ve been using? In theory, I like that it removes a cable sticking its ass out the back end of the pi, but that’s not a reason to do it.

    Would love to hear your thoughts.


    1. Hey Mitch,

      Great question! These are actually really popular on the storage benchmark. I’m still working on adding some better support for viewing which adapters are being used to the https://storage.jamesachambers.com/ tool but it’s definitely really popular and scores well on the benchmark!

      Whether you like the form factor depends on what you are using the Pi for. In some cases having just a normal USB to SATA adapter works out well because you can put the hard drive in a corner somewhere out of the way and reduce the footprint of the Pi.

      In applications where you were putting the Pi up on a shelf or stacking it somewhere the X825 really shines. This lets you use a full size 2.5″ drive and still have the Pi sitting stable on a flat surface without a large dangling USB adapter in the way. Overall it’s a great board for keeping a nice clean setup!

  15. Is it possible to have the script working with external drive and not only boot drive ?

    i have test a sandisk extreme pro 128 gb USB (SSD on USB 3) on raspberry pi 4 (1 gb) with exfat file system in extern “drive” mode and not in boot drive mode on archlinux arm and I have completly different results :

    I have make all test from the mount directory of the ssd : tested in /mnt/ssd (my bootdrive is a SD card)

    with your dd command (from storage.sh) :
    dd if=/dev/zero of=test bs=4k count=80k conv=fsync 2>&1 => results in only 60 MB/s (exfat problem ?)
    with dd if=/dev/zero of=test 64k=4k count=80k conv=fsync 2>&1 => results is 160 – 175 MB/s (much better)

    hdparm -t /dev/sda : 328.69 MB/sec

    fio4kRandWriteIOPS : fio –minimal –randrepeat=1 –ioengine=libaio –direct=1 –gtod_reduce=1 –name=test –filename=test –bs=4k –iodepth=64 –size=80M –readwrite=randwrite | sed ‘s/;/!/g’ | awk -F ‘!’ ‘{print $49}’

    fio4kRandWriteSpeed :
    fio –minimal –randrepeat=1 –ioengine=libaio –direct=1 –gtod_reduce=1 –name=test –filename=test –bs=4k –iodepth=64 –size=80M –readwrite=randwrite | sed ‘s/;/!/g’ | awk -F ‘!’ ‘{print $48}’

    iozone : iozone -a -e -I -i 0 -i 1 -i 2 -s 80M -r 4k
    random random
    kB reclen write rewrite read reread read write
    81920 4 59505 63432 97577 99012 44676 32405

    so much better than results in the excel file, some of them with scores from 4562 to 3720 :

    DD Write RandW IOPS RandR IOPS Rand Write Rand Read IO Read IO Write IO Rand Read IO Rand Write HDParm Disk
    185 3053 3168 12212 12675 26757 23339 12402 12389 220,91
    196 3033 3066 12132 12267 23467 21352 11166 11972 187,07
    190 3080 3030 12320 12121 23331 20050 12151 11983 177,34
    192 3097 2493 12389 9974 28206 18834 10289 11560 207,03
    183 3098 2561 12395 10245 27773 25028 10327 11685 178,78
    184 3103 3208 12412 12832 25887 23833 10091 11578 123,23
    181 3125 2620 12503 10482 27059 25487 10132 11704 187,85
    178 3098 3196 12394 12784 26056 23230 9940 11530 120,62
    187 2918 2604 11672 10418 19565 17540 8743 11009 128,52
    144 3005 2830 12022 11322 22968 19438 10998 12006 241,28
    174 2912 2327 11651 9308 19461 16231 8571 10443 174,68
    181 2882 2652 11529 10608 12503 10070 8439 10302 130,07
    174 2884 2196 11539 8784 19245 12276 8395 10284 206,08
    170 2914 2656 11659 10626 18557 16332 8383 10120 118,40
    178 2949 2208 11797 8833 12451 10331 8495 10448 126,92
    170 2920 2013 11682 8053 16990 9465 7610 11355 115,80
    155 2498 2328 9992 9315 17143 15831 10254 11357 207,66
    162 2545 3424 10181 13696 16082 14250 8532 10258 124,56

  16. Ended up purchasing the recommended StarTech adapter using your Amazon link, and it works a little better benchmark-wise than all the other adapters and enclosures I have…especially that Sabrent – so bad.

    I had to modify the script in two places to have it point to the right mountpoint/drive. But now I’m seeing good numbers. Makes me wonder what my numbers would be on the other controllers. I’ll try them out next.

    MicroSD card (Samsung EVO+ 128GB) benchmark: 1392
    PNY CS900 SSD (240GB) benchmark: 6093

    In my case, a case with a nice fan, heatsinks on four chips, so the CPU/GPU temperature is hanging out right around 30°C. I’m also at the current/latest EEPROM and software.

    Will share my findings on the other controllers with and without quirks.

    Quick question: the recommended StarTech has the best features and does not need quirks enabled, right? That way I get all the features like TRIM or whatever? I feel like I’ve read that using quirks removes some features, but improves stability?

    1. I’m glad I’ve been following your tutorials and guides. There’s such a HUGE difference between different controllers:

      PNY CS900 240GB SSD on a RPi 4 using Apricorn SATA to USB 3.0 adapter NO Quirks (4183)
      PNY CS900 240GB SSD on a RPi 4 using Apricorn SATA to USB 3.0 adapter WITH Quirks (4281)

      PNY CS900 240GB SSD on a RPi 4 using ASMedia ASM1053 SATA to USB 3.0 adapter NO Quirks (4418)
      PNY CS900 240GB SSD on a RPi 4 using ASMedia ASM1053 SATA to USB 3.0 adapter WITH Quirks (4275)

      PNY CS900 240GB SSD on a RPi 4 using Sabrent SATA to USB 3.0 enc with JMicron JMS561U chipset NO Quirks (1396)
      PNY CS900 240GB SSD on a RPi 4 using Sabrent SATA to USB 3.0 enc with JMicron JMS561U chipset WITH Quirks (4614)

      PNY CS900 240GB SSD on a RPi 4 using recommended StarTech 2.5″ SATA to USB 3.0 adapter NO Quirks (6133)
      PNY CS900 240GB SSD on a RPi 4 using recommended StarTech 2.5″ SATA to USB 3.0 adapter WITH Quirks (4476)

      Samsung EVO+ 128GB MicroSD card on a RPi 4 (1425)

      The SABRENT enclosure without Quirks enabled is worse than the on-board MicroSD card!

      1. Hey Amarand,

        This is an amazing writeup and definitely shows what I have been strongly suspecting: the adapter makes a HUGE performance difference, as you pointed out sometimes the difference between scoring less than a SD card and scoring 6000+!

        I’ve been working on parsing more and more information on the adapters (which you can see on storage.jamesachambers.com and click the “Score” link for test details) and believe I’m pretty close to being able to create a page that compares the performance of the different adapters on the site as well. We have enough submissions that we should be able to break adapters down by performance using a few different metrics such as the average score of each adapter by drive. This should be particularly enlightening on something like the Kingston A400 which has hundreds of tests done on undoubtedly tons of different adapters!

        This gives me more motivation to get that part of the site wrapped up and start displaying some basic data as I think there are people with some VERY nice drives out there running on poor performing adapters like the Sabrent.

  17. I’m shocked at how many SATA to USB 3.0 adapters and enclosures I’ve went through – both with and without quirks – and I’m still only seeing 1400 score with a PNY SSD. That seems slow, seeing as I’m getting a 1000 score with my MicroSD Samsung EVO+ 128GB boot drive. Thoughts? I just ordered the StarTech you recommended, on Amazon, used your link so hopefully you get credit for that. Think it’ll just work? What numbers should I be seeing?

  18. I have an SSD attached with an adaptor, but I’m booting off the SD card (Pi4), how can I make this script test the USB/SSD drive instead of the sd card? It detects the other drive when it’s running, but it only ever benchmarks the SD card.

    1. I have the same question. The script is only detecting the MicroSD card, and not looking at my /dev/sda (SSD in an enclosure with a SATA to USB 3.0 adapter). Partition /dev/sda1 is mounted.

  19. Are there any tips for getting better performance from the SSD? I have a CS900 PNY 120GB, and I get about 5400 score from it. I see a few others with the same SSD are in the 8000 range (user dzm). How??

    1. Hey Jeff,

      Are they using a bigger storage size like the 256GB model? Manufacturers seem to routinely make the larger storage sizes faster than the smaller versions. Samsung does this with the 970 Evo 1 TB vs the 256 GB versions for example.

      The other thing that can make a difference is the adapter you are using. I’ve just recently added and started working on cataloging which adapters people are using in the test results. This may give us some more insight into which adapters have the highest performance when using it with the same drive.

      The quirks also hurt your performance score if you had to apply them. If you are using an adapter that requires quirks I would definitely recommend switching.

      Overall your score is pretty good though. The highest micro SD scores can’t even reach 2000 so you’re performing very fast overall!

      1. Thanks, James…

        I do not have quirks enabled, and I am using the StarTech adapter in your listings. (I do wish that it had LED indicators, but it was available faster from Amazon!)

        The 8000+ reference I mentioned appears to be the same model (and size) as the PNY drive I am using. Obviously I don’t know the adapter that user (dzm) was using, and it was several months ago (July 1st). Nothing changed in the benchmark during that time that would affect scoring, right?

        Thanks again for your work on this – the SSD setup guide was very interesting and useful.

        1. Hey Jeff,

          Great questions! First nothing changed has changed with the scoring ever on the benchmark and if it did it would change for all existing scores as well (they are recalculated when the server refreshes the score list).

          My best guess is that the performance can change dramatically from batch to batch. This is one of the many mysteries I’m trying to solve with the benchmark as there really isn’t any data or information out there about this stuff. I can tell you that in some places where we have a lot of data (like the SanDisk Ultra SD card) the performance ranges wildly by date manufactured. It can be fast for a couple batches and then the next batch it will drop several hundred points in speed.

          I also highly suspect the adapters are having a significant impact on performance. I’m still in the early stages of identifying adapters and I will be able to identify most adapters from older tests but it’s going to take some time and a lot of RegEx to parse through the tests and identify them all.

          One thing that really helps is when people put in the description which adapter they are using. Sometimes that one person will help me finally identify an adapter that is unidentified on 7 other existing tests.

          I would say stay tuned and check back periodically. I am working on a new site to make browsing the benchmarks much less painful as we have so many tests now that the current table is getting way too big and out of control. You’ll also be able to browse by categories such as manufacturer, model, and others which can help us answer some of these questions!

          1. Well – I just re-did the performance test and submitted a new value of 7900 (spiff72 was the name) for the same drive! The difference: I am on the 64bit Ubuntu 19.10 image now. Maybe THAT was the difference?

            1. Re: Differing distributions affect score.


              On a different site, (that I can’t find right now), they mention that Mint versions later than 18.1 absolutely KILL the I/O speed on USB. (This was true up until 19.3. I don’t know if the 20.n release fixed this.)

              I used to keep an old Knoppix version 6 CD kicking around because it was absolutely KILLER on USB bulk-copy operations – even over slow USB 2.n connections.

              So, yes, I would expect the distribution to materially affect the drive’s reported speed.

              Maybe you can include the distribution/version as part of the reported metrics since it can be more significant than the adapter itself – assuming the adapter isn’t junk.

Leave a Comment

Your email address will not be published. Required fields are marked *

Type here..

Exit mobile version