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
Hello James –
I have a Samsung 970 EVO Plus 500GB and I’m attempting to compare benchmark numbers to your site to make sure everything on my pi is properly configured. Your benchmark script is very helpful but its unclear to me what I should be looking for. I’m expecting a score somewhere near `9563` in my report – but where?
Thanks,
Matt
Hey Matthew,
I think you actually took it when pibenchmarks.com was down! You’re right though, it’s pretty hard to know where to find it. I have a couple of upcoming improvements coming to help with this.
For example, I am going to make it so that when your test is over it actually gives you a link to your result! This will be a little tricky for drives it doesn’t know how to identity yet but I’ll just add something in that says it couldn’t be identified etc. In your case I think the test was successful but my site was being rebuilt at the time (database crash) so it probably didn’t make it.
Regarding your score itself, it’s great! One thing you can use to compare it is to pull up your drive by brand name:
Pi Benchmarks Samsung_970_EVO_Plus
I’m still right in the middle of creating this “brand” meta page so there’s only a couple of boxes of information right now but it does have the top 5 scores ever recorded for your drive. The highest one is 12,333 and #5 is 10,200. Many of the top 5 results are overclocked so never feel too bad if you didn’t get first place if you weren’t overclocking and shooting for it.
The other important thing to look at is the average. This is exactly what it sounds like, an average of all the scores although there is also a “Pi 4” only average since Pis below the 4 are not capable of running these drives at full speed. The average for this drive is currently 9,171 so your score was a few hundred points above average!
If your drive was scoring off from those scores by more than 20% (especially below the “average”) it would indicate that something is not right. This usually ends up being a problem with a storage adapter/occasionally a bad drive/configuration error etc. Yours looks good to go!
Thanks for confirming.
To help others, here’s more info on my setup –
HOGORE USB 3.2/ 3.1 Gen 2 Hub, 4-Port Powered USB Hub (USB-C to USB-A x3 & USB-C) w/ power adapter
XAOSUN 3.1 USB C Female to USB Male Adapter
TDBT M.2 NVMe SSD Enclosure with Heat Sink, 10Gbps USB-C to PCIe NVMe M.2 Hard Drive Enclosure with Thermal Cooling Pad
I bought specifically the Samsung T5 after reading the AnandTech article and its very low consumption.
It works great out of the box with the a 5V-3A power supply. I still need to add a fan instead of the heatsinks, nevertheless it should be fine.
hello everyone,
im having some issues! after looking through this guide I recently bought a western digital blue sn550 nvme 250gb, and theo tdbt m.2 nvme enclosure, got my pi 4 to boot using this set up, and ran this test. my score was 2526, which is FAR below even the lowest recorded score. ive been trying to troubleshoot why this might be and i cant seem to find a solution. all of the videos ive watched with people booting from a ssd give them hparm speeds of 100-600 mb/s, while mine is hovering around 30. any ideas?
Hey Tyler,
Sorry for the slow reply, I missed this one in the shuffle. Have you tried enabling quirks mode on your drive? I cover this a little bit more in depth in my New Raspberry Pi 4 Bootloader USB Booting Guide. Sometimes unpredictable things can happen and it can help.
2500 sounds suspiciously close to the USB 2.0 limit. It may be worth checking to make sure it’s plugged into one of the blue ports. I recently updated the benchmark to tell you what mode your USB connection is running in if it’s able to be seen depending on your adapter.
I’m not familiar with this enclosure. Do you happen to have a link to your benchmark id #? I would definitely be willing to take a closer look here and see if we can figure out what is bottlenecking you!
any update?
James — seems we can no longer download the results to a CSV or .xlsx document? Did you make that change intentionally, or will the functionality be added back at some point? I would like to sort through results on my own.
Hey Austin,
Wow! Did you actually use the benchmark back then or is there a reference to that somewhere still around?
So it wasn’t an intentional change. What happened is I have been migrating away from a PHP forms submission software called “FormTools” to purely my own code. That project seems to have been abandoned. The author has a note up and the site is still up but it hasn’t been updated for years. It’s still partially used right now until I can finish the rest of my own custom stuff. The benchmarking bash script still uploads the results to a FormTools form.
The site used to basically be a giant table that had limited sorting and was impossible to navigate very effectively. The “export” function was built into FormTools already. I’ve replaced the FormTools frontend entirely though at this point so there’s no way to get to the button for non-admins. At the time it was literally easier to read the data in Excel (most things are really when presented/sorted, but I mean you basically had to to even read it). I had actually forgotten about it until you mentioned it!
There’s no reason I took it away or anything like that so I will definitely put it on the ToDo list to add an export button here at some point. I’m right in the middle of major changes on the site trying to get it more usable (it’s better, still horrible, but improving and you can kind of browse it now, yay!). If you check it today and check it tomorrow it may look completely different or have new pages than before so I may get an opportunity to implement this before too long!
Greetings!
Two questions:
1. I have been running your benchmark and have submitted numerous reports on various SD and USB devices I have here, all as (using “European” quotes for clarity), and yet, interestingly enough, none – not a single one – has shown up on your list. I did a new test of a Seagate Expansion SSD (500G) on my Pi-4 test rig and submitted it on 2020-10-14, and it has not yet shown up. Nor bustin’ chops, but I am curious. Maybe other significant data is also being swallowed up in some black hole somewhere?
2. When running tests on my devices, I have noticed that several tests on the same device, on the same port (USB/micro SD), on the same system, using an identical image, show what might be significant variation.
For example:
Today I purchased the Seagate Expansion SSD device – an external USB-3 device that contains a SSD instead of a standard mechanical hard drive.
I ran a total of ten passes of your test on it and recorded all the results. (I turned off my WiFi at the end of the test to avoid spamming your site with tests.)
The “score” for this device, run exactly the same way over and over again in succession, ranged from a low of 6477 to a high of 7394 – a difference of almost exactly 12.5%.
I have noticed a similar effect when testing other devices though I have not run such a test as this because the other devices were too slow.
I would hope to believe that the device itself doesn’t have a 12 to 13% variation in speed based on the phases of the moon or whatever. I also shudder to think that my Pi-4 is so inconsistent.
Do you have any idea why there should be such a variation? Note that the variation seems to be random in nature instead of steadily increasing or decreasing.
Thanks!
Jim “JR”
This is great! FYI, the reason that that particular micro-SD card at the top is so popular is because it is sold in a 2-pack from Costco in the US for only $45, making it out to $22.50 per card! So they are popular because they are cheap!
Hi James,
thanks for providing such very deep information.
Over the time I have done several tests with Raspi 4 (4GB) and Samsung 860 EVO 250 GB (e.g. #5367 on 2019-12-18 and #32570 on 2020-09-28).
I have done firmware and bootloader updates as soon as they where in stable state. I believe my updates have made the system more stable and efficient due to less heat dissipation.
On the other hand during time the score went worse.
I have done software updates of your software too in order to stay comparable.
What do you think about? What may be the root cause of this slow down?
Regards, H.
Assuming you’re using an SD card, mounted within the Pi’s SD slot, have you tried a TRIM of the device?
Viz.: fstrim -v /
Part of the problem may be that you are continually reading and writing from the device and solid-state devices like SSD’s or SD cards do not necessarily handle TRIM very well, especially if you are running something repeatedly.
Sorry I’m late to the party, but I second what Jim said. When I’ve seen this on my own devices it has been because the SD card needed a trim. Once I did that and rebooted typically performance would be 90-95% restored if not 100%!
Hi Jim,
thanks for the hint.
This is not a SD card. The Samsung 860 EVO is a mSATA device on a Lycom Adapter (in a USB3-version with controller from Renesas/NEC). Anyway, the provided link worked.
However, after trimming the device is not faster.