2026-07-09
Best NVMe SSD for Raspberry Pi 5 (Real-World Tested)
The Raspberry Pi 5's single PCIe 2.0 lane caps NVMe throughput well below what modern drives can deliver, so buying the fastest drive on the market is a waste of money. A budget DRAM-less NVMe like the Fanxiang S501Q hits the Pi 5's ceiling and costs a fraction of flagship SSDs — that's what I run, and below are my actual numbers.
My Exact Build
- Board: Raspberry Pi 5 Model B Rev 1.1, 15 Gi RAM (the 16 GB variant) Raspberry Pi 5 16GB
- OS: Debian GNU/Linux 13 (trixie), kernel 6.18.34+rpt-rpi-2712
- SSD: Fanxiang S501Q 512GB (476.9 GB usable) Fanxiang S501Q 512GB NVMe SSD
- HAT: Official Raspberry Pi M.2 HAT+ Raspberry Pi M.2 HAT+
- PCIe mode: Gen 2 (the Pi 5 default — I did not force Gen 3)
- Boot device:
/dev/nvme0n1p2— booting directly from NVMe, no SD card
Real Benchmark Results
All tests run with fio on the live system described above.
| Metric | Result |
|---|---|
| Sequential read | 453 MB/s |
| Sequential write | 438 MB/s |
| Random 4K read IOPS | 16,433 |
| SoC temp at idle | 49.4 °C |
| SoC temp after sustained load | 48.8 °C |
A few things jump out. Sequential read and write are nearly symmetrical, both clustered around 440–450 MB/s. That aligns almost exactly with the theoretical ceiling of a single PCIe 2.0 lane (roughly 500 MB/s signaling rate, minus protocol overhead). The drive is not the bottleneck — the bus is.
The temperature result surprised me. After a sustained fio workload the SoC actually read 48.8 °C — slightly lower than the 49.4 °C idle reading taken earlier. That's within normal measurement variance and tells you one useful thing: the S501Q generates negligible additional heat. I run the Pi 5 with the official active cooler, but even so, a drive that doesn't meaningfully raise SoC temps is welcome in a cramped homelab case.
Why a Budget NVMe Makes Sense on the Pi 5
The Pi 5 exposes one PCIe 2.0 x1 lane. You can force Gen 3 in config.txt, which reportedly bumps the ceiling to ~800 MB/s, but Raspberry Pi's own documentation notes this is not guaranteed stable on all boards. At Gen 2 defaults, any modern NVMe — even a $25 DRAM-less drive — will saturate the link.
Spending $100+ on a Samsung 990 Pro or WD Black SN850X gains you nothing on this platform. Those drives are designed for PCIe 4.0 x4, delivering 7,000 MB/s to a desktop. Plugged into a Pi 5, they'll still hit the same ~450 MB/s wall I measured. Save the money.
What does matter on the Pi 5:
- Low idle power. The Pi's 5V/5A supply feeds the board, HAT, and drive. A power-hungry flagship NVMe can cause instability. Budget DRAM-less controllers like the one in the S501Q sip power.
- 2230 or 2242 form factor compatibility. The M.2 HAT+ supports 2230 and 2242 natively. Full-size 2280 drives require a longer standoff and may interfere with cases. The S501Q is 2280, which fit my open-frame setup fine, but check your case.
- Decent random 4K performance. For a homelab box running containers, databases, or Plex metadata access, random IOPS matter more than sequential speed. My 16,433 random read IOPS is solid for things like SQLite, Gitea, or Pi-hole's gravity database.
Other Drives Worth Considering (Not Tested by Me)
I can only vouch for the Fanxiang S501Q from first-hand benchmarking. But based on published specs and widely shared community results, these are commonly recommended for the Pi 5:
- Western Digital SN580 (2280) — A DRAM-less PCIe Gen 4 drive. Reportedly lands in the same ~450 MB/s range on Pi 5 Gen 2. Well-regarded for endurance. WD Blue SN580 500GB NVMe SSD
- Kioxia Exceria G2 (2280) — Another budget Gen 3 DRAM-less option. Community benchmarks suggest it saturates the Pi 5 link without issue.
- Pimoroni NVMe Base / Geekworm X1003 — Alternative HAT boards if the official M.2 HAT+ is out of stock. I haven't tested these; the official HAT+ worked without any driver fuss on my Debian trixie install.
I want to be clear: I have not benchmarked any of those drives on a Pi 5. The numbers I trust are the ones at the top of this article.
How to Boot from NVMe
The process has gotten simpler since the Pi 5 launched. In brief:
- Update the bootloader via
rpi-eeprom-updateto a version that supports NVMe boot. - Flash your OS image directly onto the NVMe drive (I used the Raspberry Pi Imager).
- In
raspi-configor the EEPROM config, set the boot order so NVMe comes before SD. - Remove the SD card and power on.
My system boots from /dev/nvme0n1p2 with no SD card present. It's been running stable for weeks under mixed workloads — containers, cron jobs, package builds.
Who Should NOT Do This
- If you just need Pi-hole or a simple DNS server, a decent SD card is fine. The write load is minimal, and adding a HAT plus SSD doubles the cost of the build for marginal benefit.
- If you need high-throughput storage, a Pi 5 with a single PCIe 2.0 lane is the wrong platform. My 453 MB/s sequential read is fine for a homelab, but if you're serving large video files to multiple clients, look at a used mini PC with PCIe 3.0 x4 or better.
- If your budget is extremely tight, the ~$15 for the HAT+ plus ~$30 for a 512 GB NVMe is a meaningful chunk of a Pi 5 build. An A2-rated microSD card gets you surprisingly far for light workloads.
The Honest Trade-Off
NVMe on the Pi 5 doesn't give you desktop-class storage speed. It gives you roughly 4× the sequential throughput and dramatically better random I/O compared to even the best SD cards, with far superior write endurance. For a homelab box that runs 24/7 — Docker, databases, logging — those gains translate directly into snappier response and longer drive life. That's the real reason to do it.
Verdict
The Fanxiang S501Q 512GB NVMe SSD paired with the Raspberry Pi M.2 HAT+ saturates the Pi 5's PCIe 2.0 link at 453/438 MB/s read/write and 16K random read IOPS, all while adding effectively zero heat. Any budget DRAM-less NVMe will hit the same ceiling — don't overspend on a flagship drive for this platform. Put the savings toward more RAM or a better case with active cooling.