UPDATE: The 2022 storage benchmarks are now available!
We’ve now received over 20,000 benchmarks at Pi Benchmarks! These are submitted by regular people from all over the world.
In celebration of that milestone as well as the launch of the 8GB Raspberry Pi 4* take a closer look at which device you should choose for your Raspberry Pi 4 as determined by science and measurement!
Best Performing Devices
Solid State Drive (SSD)
The Samsung 980 Pro (NVMe) is a professional grade SSD and one of the fastest in the world. The Samsung NVMe drives have been at the top of this category for a long time and are well trusted for both their performance and reliability / long life.
Links: AliExpress*, Amazon.com*, Amazon.ca*, Amazon.com.au*, Amazon.co.jp*, Amazon.co.uk*, Amazon.de*, Amazon.es*, Amazon.fr*, Amazon.it*, Amazon.nl*, Amazon.pl*, Amazon.se*, Amazon.sg*
Secure Digital (SD / MicroSD) Card
The SanDisk Extreme A1-A2 SD card has the best scoring SD card on pibenchmarks.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*, Amazon.com*, Amazon.ca*, Amazon.com.au*, Amazon.co.jp*, Amazon.co.uk*, Amazon.de*, Amazon.es*, Amazon.fr*, Amazon.it*, Amazon.nl*, Amazon.pl*, Amazon.se*, Amazon.sg*
The SanDisk Extreme A2 is barely edging out the SanDisk Extreme A1 variant for the top spot. The difference is tiny though, so you should pick whichever one is cheaper at the moment.
Benchmarking / Testing Storage
If you want to verify your drive’s performance you may want to run my storage benchmark with:
sudo curl https://raw.githubusercontent.com/TheRemote/PiBenchmarks/master/Storage.sh | sudo bash
If you search for the model of your drive on Pi Benchmarks you can compare your score with others and make sure the drive is performing correctly!
Storage Adapter Performance Note
The type of USB adapter you use (if you aren’t using a SD card) can have a big effect on performance. I cover which adapters are good and which should be avoided more comprehensively in my Raspberry Pi 4 USB Booting Post.
The most popular one at time of writing is the StarTech USB 3.1 to 2.5″ SATA adapter*.
Top 20 Fastest Storage Devices
# | Brand | Link | Average (All) | Average (Pi 4) | Fastest Score | Slowest Score | Total Benchmarks |
---|---|---|---|---|---|---|---|
1 | Samsung 970 Evo Plus* | 9563 | 9563 | 10840 | 2805 | 49 | |
2 | Patriot P200 Series* | 9372 | 9372 | 10170 | 8830 | 6 | |
3 | Crucial P1 M.2 Series* | 8602 | 8602 | 9369 | 6737 | 6 | |
4 | Western Digital Blue SN550 NVME* | 8396 | 8396 | 9799 | 7079 | 10 | |
5 | Western Digital Black SN750 Series* | 8381 | 8381 | 8650 | 8229 | 4 | |
6 | Samsung 860 Pro* | 8325 | 8325 | 9523 | 4895 | 15 | |
7 | Samsung T5 Portable* | 8299 | 8339 | 11505 | 2721 | 272 | |
8 | Samsung 850 Evo mSATA* | 8284 | 8284 | 9617 | 5325 | 20 | |
9 | Samsung T7 Portable SSD* | 8104 | 8104 | 8494 | 7834 | 3 | |
10 | Micron 1100 M.2 Series* | 8063 | 8063 | 9012 | 6605 | 4 | |
11 | Transcend MTS600 Series* | 8022 | 8022 | 9274 | 6967 | 4 | |
12 | SanDisk Extreme 500 Portable* | 8016 | 8438 | 10619 | 2693 | 25 | |
13 | Kingston A2000 Series* | 8014 | 8014 | 9503 | 5207 | 10 | |
14 | AData SU635* | 7953 | 7953 | 8678 | 7529 | 5 | |
15 | SKhynix SC311* | 7940 | 7940 | 8427 | 6355 | 8 | |
16 | Crucial MX300 M.2 Series* | 7739 | 7739 | 8829 | 6133 | 8 | |
17 | SanDisk Extreme Portable* | 7720 | 8000 | 11337 | 2449 | 106 | |
18 | KingSpec Z3 Portable Series* | 7714 | 8035 | 10458 | 1591 | 88 | |
19 | Team GX1 Series* | 7686 | 7686 | 8792 | 4660 | 8 | |
20 | Samsung T3 Portable* | 7632 | 7632 | 9431 | 2509 | 22 |
Top 10 Fastest Secure Digital SD / MicroSD Cards
Rank | Brand | Link | Average (All) | Average (Pi 4) | Fastest Score | Slowest Score | Total Benchmarks |
---|---|---|---|---|---|---|---|
1 | SanDisk Extreme A2 (SEXXX C10 V30 U3)* | 1595 | 1659 | 1747 | 1167 | 12 | |
2 | SanDisk Extreme A1 (SEXXX A1 C10 V30 U3)* | 1588 | 1669 | 1808 | 858 | 141 | |
3 | Transcend (USD A1 C10 V30 U3)* | 1569 | 1569 | 1667 | 1363 | 6 | |
4 | SanDisk Extreme Pro (SPXXX A1 C10 V30 U3)* | 1568 | 1606 | 2289 | 651 | 136 | |
5 | Lexar 633x* | 1554 | 1554 | 1810 | 1028 | 14 | |
6 | Kingston Canvas React (SDCHE A1 C10 V10 U1)* | 1554 | 1554 | 1632 | 1465 | 6 | |
7 | SanDisk Extreme Pro (SPXXX C10 V30 U3)* | 1520 | 1607 | 1709 | 1260 | 4 | |
8 | Toshiba SD (SA32G A1 C10 U1)* | 1456 | 1525 | 1616 | 1178 | 5 | |
9 | Transcend (USD A1 C10 V10 U3)* | 1436 | 1436 | 1528 | 1135 | 7 | |
10 | AData Premier Pro* | 1412 | 1412 | 1558 | 1316 | 13 |
Benchmarking Your Own Device
I highly recommend benchmarking your own storage device. To run the benchmark paste/type:
sudo curl https://raw.githubusercontent.com/TheRemote/PiBenchmarks/master/Storage.sh | sudo bash
The benchmark only takes a few minutes and will give you a lot of information about whether your Pi is performing well or not. Storage is definitely the biggest performance variation between otherwise identical Pi setups.
Compare your score with others at the full benchmark browsing site Pi Benchmarks. Leave a comment letting us know how you did or if you need any help!
Power Requirements
Most types of storage adapters can be powered by the Pi itself. One notable exception is NVMe enclosures. Throughout the years we have had hundreds of comments from people who had no trouble powering 2.5″ SATA enclosures but couldn’t get a NVMe one to work at all without a powered USB hub.
Very large older 3.5″ SATA drives are known to require more power than the Pi can provide as well as some types of very high performance models that were designed to burn more power to get extra performance gains.
For solid state storage older models of solid state drives (SSDs) are also known to draw more power than their newer counterparts. If you have a drive that you think may fall into this category then definitely be on the lookout for power related issues and extra cautious about your power setup. High end “extreme” performance models also tend to draw more power (Samsung 970 NVMe drives* are some of the fastest in the world but also pretty power hungry for the Pi).
Insufficient Power Symptoms
Symptoms of a lack of power to the drive can include the system only booting sometimes (or not at all) or working for a while and then locking up. Just because the drive boots does not mean it is getting enough power.
Some commenters on previous articles have described this as working fine until there was a sudden spike in CPU usage while they tried to do several things at once (high CPU, accessing storage, activating various hardware all at once) and then they would get a lockup/crash.
This is because the Pi is teetering on the edge of not having enough power and that spike caused it to drop enough where the drive actually lost power (likely only for tiny fractions of a second). This is enough instability to easily cause a crash and worse if it happened to be in the middle of writing something important! Usually nothing will happen other than you’ll have to restart the Pi but because of the risk of data loss and eventually corrupting files. That being said, if you’re particularly unlucky you will have to fsck the drive or potentially even reimage it if fsck is unable to repair the damage!
The best answer is to test for stability. Do this by stressing out the Pi and make sure you are doing activities that stress the CPU and storage at the same time like browsing the web, etc. and if you can do that for a few hours/days without a lockup/crash then you have a stable power setup!
Powered USB Hub Solution
For NVMe enclosures and power hungry drives I personally use this Sabrent powered USB hub and have been recommending it here on the blog for a long time:
The Sabrent powered USB hub delivers a whopping 2.5A of dedicated power for your USB attached devices. This is almost as much as the Pi adapter itself is rated for (3.0A). It will easily power the most thirsty of setups such as NVMe enclosures.
Links: AliExpress*, Amazon.ca*, Amazon.com*, Amazon.com.au*, Amazon.co.uk*, Amazon.es*, Amazon.it*, Amazon.nl*, Amazon.pl*, Amazon.se*
Note: Make sure Amazon doesn’t try to take you to the non-powered version and that it’s the one with the AC adapter that plugs in to provide extra power
If this hub isn’t an option for you and you don’t have one already you can try with it then look in the reviews for people saying that it is working with Raspberry Pi. Some powered USB hubs will not play nice with the Pi so before buying one definitely check reviews and do some careful research about what to expect with the Raspberry Pi!
Oversized Power Adapter Solution
This solution will work for setups that are right on the border of having enough and not having enough power. An example would be if you can get a stable boot but are getting occasional lockups/freezes when the power dips just below the threshold it needs.
If you are using a powerful NVMe drive/enclosure combo like the ICY BOX with a high performance Samsung NVMe drive even with the extra 500 mA it will still not even boot. I have had these oversized adapters and they are great but for a very powerful drive/adapter combination you are going to need more than 500 mA.
It’s a lot less extra wires and one less AC plug though if you are right on the border and just need a little bit more. It will depend on your individual drive/adapter combo whether it’s enough or you will have to go full powered USB hub!
The CanaKit 3.5A adapter has an extra half an amp (500 mA) of capacity to give some breathing room to your accessories. This is bigger than the official Pi power supply which provides 3.0A.
Links: Amazon.com*, Amazon.ca*, Amazon.com.au*, Amazon.sg*
In previous articles readers have told me that this specific adapter can be hard to find outside of North America. I tried to link to as many regions as I could find it in but there should be something equivalent in your region (it just likely won’t be specifically designed for the Pi but will be a more generic USB-C charger).
Look for a USB-C power supply rated to supply around 3.5A. 3.0A or lower won’t do much good as that is almost certainly what you already are using. You can use a higher one (at your own risk). The largest one I’ve ever used is my Dell laptop’s 30W USB-C power adapter. It’s probably not a good idea to go too much bigger than this or to even use one this big over the long term (I didn’t, just for occasional testing and as a emergency backup) but USB-C does have some specification improvements related to power management that seem to provide some flexibility here.
Power Limits
The Pi can only pass through a limited amount of extra power. On the Pi 4 this is up to 1.2A of extra power for peripherals (combined) on top of the board’s 3.0A power rating. This is much more than the Pi 2 and some other previous models could do which was only around 0.5A. This also means that getting a power adapter bigger than about 4.2A of rated current is pointless because the Pi won’t allow any more power to flow through to the board to the peripherals through USB anyway even if it’s available.
I’m oversimplifying a little bit to illustrate the point but if you want the full technical details they are available here in the Raspberry Pi USB documentation. The important takeaway is that going much above 3.5-4.0A or so will not actually provide any more power to the Pi because of these limits. If you’ve hit this ceiling and it still isn’t enough you need to go powered USB hub.
I’ve also used ones that charge cell phones to power Pis before and these ones are the most likely to fall into a range close to what the Pi uses. Most of the ones I had around the house for phones were 2.5A (just barely not enough) or 3.0A so it was enough for a backup spare but not enough to provide extra power. Nevertheless, it’s definitely worth it to check what you already have around and see if there are USB-C chargers around to test with!
Note that a powered USB hub essentially bypasses these limits because the power for your peripherals such as your USB storage will come from the AC adapter connection to the powered USB hub instead of the Pi having to provide that power.
Powered USB Hub Troubleshooting
Most hubs including the Sabrent one above can feed back power into the Pi which can cause it to not boot when the power is connected. The reason for this is that the Pi is detecting power and is trying to power on using that source but the current provided isn’t enough for the Pi to actually boot.
The solution to this is to remove the USB hub’s connection from your Pi momentarily and then connect the power. Plug your USB hub back in quickly after reconnecting the Pi’s power (if you have native USB booting set up) and unless you really fumble with reconnecting it you will have it plugged in well before it tries to boot from the SSD!
If this trick doesn’t work then unfortunately you may have a powered USB hub that is not going to work with the Pi. It’s worth checking to see if there are any firmware updates available for your USB hub before you give up on it as some readers have let me know in the comments of previous articles that they were able to get some hubs working after a firmware upgrade!
Other Resources
If you’ve having firmware problems with your Pi such as it blinking and refusing to do anything else or know that your firmware is very old (from before native USB booting was added) check out my Raspberry Pi Bootloader Firmware Update / Restore Guide
To check out the best storage adapters to use with your Pi check out my Best Working Storage Adapters Guide here
Also some submissions don’t work well
Failed query in FormTools\Submissions, /var/www/storage/formtools/global/code/Submissions.class.php, line 204, error: SQLSTATE[HY000]: General error: 3988 Conversion from collation utf8mb3_general_ci into utf8mb4_bin impossible for parameter
Maybe you could catch errors there in php and mail notification is something wrong is happening?
Hey Arek,
Thanks for reporting this. I’ve upgraded my formtools and double checked some collation fields and it should be good to go!
Would love to see page aggregating data + statistics also based on devices used as nvme/sata etc to USB bridge etc. For example https://pibenchmarks.com/benchmark/74845/ has such data (USB Device ID, Vendor ID, Product ID) but there is no way to view which are commonly used by users, with what performance results etc etc.
Hey Arek,
That’s a great idea! I’d definitely like to create some aggregation pages and will keep this in mind. Take care!
Are those speeds in meters per second?
Hey HSN,
Which speeds are you referring to? Do you mean the scores for the drive?
The score is basically a composite of a few different benchmarks. Here’s one I picked at random.
The speeds are in the “Benchmarks Results” section and include the following:
Benchmark Results
DD Write: 37.1 MB/s
HDParm (Disk): 42.12 MB/s
HDParm (Cache): 41.56 MB/s
FIO 4KRandW: 1,188 IOPS
FIO 4KRandR: 2,553 IOPS
FIO 4KRead: 4,754 KB/s
FIO 4KWrite: 10,213 KB/s
IOZone 4KR: 7,993 KB/s
IOZone 4KW: 2,392 KB/s
IOZone 4KRandR: 6,829 KB/s
IOZone 4KRandW: 3,434 KB/s
Hopefully that helps!
Hi James, Would be interesting to have folks run Dave’s Prime number challenge
Install CPP if necessary
cd Primes/PrimeCPP/solution_1
./run.sh
I ran on 2 Pis and posted results in his comment for his YouTube video. Dave’s Garage – Software Drag Racing: M1 vs ThreadRipper vs Pi
Hey Paul,
Absolutely, that’s a great test to make sure overclocks are stable and testing thermals/temperatures etc. and are extremely useful!
FYI regarding power adapters. Overvolting the pi will do damage. Having a larger capacity in amps will not hurt anything. The Pi will only use what it needs. This is true of any device and any power source. Think about a battery. A lawn mower battery, a car battery, and a marine deep cycle battery all provide a nominal 12v and can run 12v accessories even though they are very different both in capacity and amps available.
Hey Ben,
This is correct (the conclusion at least). Power negotiation is part of the USB-C standard. I’ve plugged in extremely large laptop USB-C power adapters into the Pi before and it will not damage it. It won’t even use the extra power above a certain threshold. Only 1.2A of power will be allowed to pass through the Pi (although this can be slightly increased with the over_voltage=6 parameter, values above 6 will void the warranty and require force_turbo and can potentially be dangerous, but over_voltage up to 6 is safe). Documentation on this is here.
It is possible to damage the Pi with too much power but not through the USB-C port. You would have to be powering it through one of the alternate methods to be able to “fry” it like using the 3 metal contact points on the bottom of the board or the 5V GPIO pins or something like that.
This is covered in this MagPi article here (search/Ctrl+F for Raspberry Pi power over GPIO, about half way down the page in 1920×1080). This is considered highly dangerous because there is no voltage regulation when you power it through this method so don’t do it unless you know your electrical engineering is correct and you’re not going to create a puff of blue smoke!
On the Compute Module 4’s IO board you can actually use either a 5V power supply or a 12V power supply and both will work. The 12V is actually required if you have NVMe drives that require a lot of power (my 256GB Samsung 960 worked off the 5V, my 1TB Samsung 960 didn’t get enough power and needed the 12V).
At any rate don’t worry about frying the Pi unless you’re using one of the alternative methods to supply power that bypasses the USB-C negotiation and the power regulation circuitry (or using force_turbo and values well above over_voltage=6 can do it but still probably won’t but you are at risk at least with those parameters, thermals/temperature and heat damage over time is probably more of a risk in this case than actually letting enough through to instantly fry it)!
I wanted to add this context though because your conclusion is correct, but only if using the USB-C power port to power the Pi because it is specifically designed with voltage regulation circuitry (some in the Pi and some in the USB-C standard itself). It is *not* universally safe to directly apply power from a large 12V DC source to a 5V device and this will instantly create a puff of blue smoke (don’t breathe it). You can (and people have) do this to the Pi if you tried to wire a large 12V DC power source directly through the 5V GPIO pins for example.
It’s not nearly as dramatic as TV/movies when this happens with electricity arcing everywhere or anything crazy like that. It’s just a little bit of blueish haze smoke sometimes as a big puff all at once or in really bad cases it will smoke until you (safely, do not touch the frying/shorting device, find another way like a breaker / switch / from the wall) disable the power source (have had to do this with large LED monitors at work) and then the device is dead. You can also do this building a PC if you put a motherboard standoff where it shouldn’t be and it creates an electrical “bypass” pathway unintentionally (big problem with Threadripper boards) and easily fry the motherboard.
Other devices are also not safe to plug into a power source this large unless they have specific voltage regulation circuitry to allow for it safely. Most do these days, but 15-20 years ago people used to blue smoke them all the time plugging in the wrong AC adapters with the wrong voltages but this doesn’t happen very much anymore. Improved safety standards as well as the underlying standards like USB-C call for voltage regulation and power negotiation right in the spec now have made this mostly true but it’s important to understand it’s by design and not native, it can be bypassed and not all devices have it.
It’s not at all a native property or universal truth of 12V / 5V power sources. It’s also cheaper for the manufacturers to put this in so the customers don’t plug in the wrong adapter and then do a warranty request saying it was DOA or something like that so in general devices are much less sensitive to this than in the past as it protects the manufacturer’s bottom line to put these in (and is required for a lot of countries now for it to be certified). I typically use this Sabrent hub but if you have very high power requirements you may need a larger one. Hopefully all that makes sense for anyone deeply investigating this stuff!
Hello James,
I came here, because I cannot find any other way to contact You,
I just noticed that submitting new benchmarks no longer works 🙁 curl returns 302 code and “HTTP error before end of send, stop sending”
None of my last benchmarks are listed on latest section.
BTW: on DietPi inxi module throws additional error: Can’t locate Data/Dumper.pm in @INC (you may need to install the Data::Dumper module), this is easily corrected by installing libxml-dumper-perl package, please consider adding that to script 🙂
When You have time it would be nice to add grouping by device + system and overclocking values. Right now results with CM4 + NVme are far higher than anything else on USB3 on earlier models, that should be somehow filtered. Maybe in future you may consider adding more SBC and systems like Pine64 or Khadas 😀
Hey DMC,
Thanks a ton for the notice on my outage! I got it restored. I had set my PHP memory limit too low and reconfigured it. I’ve also committed the fix to install the dependency libxml-dumper-perl into GitHub.
I’ll try to get some contact information on there as well. I have been meaning to set it up on my servers but this gives me the push I need to do it since this has been fantastic information. Thanks again!
Isn’t the i/o speed to the RPi4 limited by the USB 3.0 interface? So all the benchmarks for PCI type NVMe M.2 cards are bogus for the Pi, the most throughput via USB 3.0 will be about 500MB/s on some SATA based SSD, or what am I missing?
Exactly. USB 3.0 is the Pi’s bottleneck which none of the recent SSDs fits through, thus the difference among them for a Pi user is minimal. Please correct me if I’m wrong.
A raspberry pi 4 _computer module_ could explain the some of the extremely high numbers. This version of the pi can be plugged into cards that have PCIe slots and even M.2 slots. Drives in those systems would not be going through USB.
Hey CC,
Absolutely! I thought I had preordered a Compute Module 4 and developer / IO board but nothing ever showed up so I think I need to try it again. The script may need some tweaks to recognize those types of drives correctly.
They definitely would be able to theoretically reach much faster speeds than the drives which are typically limited by the USB bus speed at the highest performance end. This is why a PC with the same drive will score so much higher!