Raspberry Pi 4 with NVMe SSD Attached
If you attach an external SSD to your Raspberry Pi 4 B, you will get significantly faster app opens and file transfers. One of the most important improvements in the Pi 4 is its USB 3.0 interface. Where previous Raspberry Pi models were limited to a USB 2’s theoretical 480 Mbps / 60 MBps maximum speed when connecting to external storage, the new model has an interface that can theoretically hit 5 Gbps / 620 MBps. In the real world you’d be lucky to get half of that, but you still attain speeds that are three or four times faster on tasks that matter.
By way of comparison, the microSD card reader on the Raspberry Pi 4 can only manage a theoretical maximum of around 50 MBps, which is double the bandwidth available on the Pi 3 B+. But just exactly how much faster is an SSD than using a high-quality microSD card? To find out, I attached an M.2 NVMe SSD in a USB enclosure to my Raspberry Pi 4 and ran a few tests.
For my external SSD, I used a Western Digital Blue SN500 ($65), which was in a Plugable USB enclosure ($49.99). The microSD card I used, which I tested on both a Raspberry Pi 4 B and a Pi 3 B+ was a SanDisk 64GB Class 10 card.
Because many people won’t want to spend the cash on a full-fledged SSD, I also tested with a high-speed USB 3.0 Flash drive, the Patriot Memory Supersonic Rage Elite (128GB, $22). The Flash drive was so sluggish that I only tested it on the faster Pi 4.
Unfortunately, at this time, on the Pi 4, you cannot boot off an external drive (I hear that a firmware update which addresses this is coming), but I was able to copy everything except the boot partition to the SSD, so all the programs and most of the core files of the OS itself loaded from it. See my article on how to run a Raspberry Pi 4 off a USB drive if you want to try this yourself.
Application Open Times: Noticeably Faster With SSD
Whether you’re adding an SSD to a PC or a Raspberry Pi, you’ll experience the benefits most when you open programs. To see how much quicker the SSD is, I recorded launch times for a few different apps.
Chromium Launch times on Pi 4 with SSD
Chromium browser, the open-source version of Chrome, is probably the most important preloaded app and the one you’ll open the most. It loads a full 38% faster with an SSD than with the microSD card on the Pi 4. Even on the Pi 3 B+, which is limited to a USB 2.0 connection, the SSD was a full 24% quicker. Note also that, because of the faster microSD reader, the Pi 4 opened the app 30% quicker than the 3 B+, with both of them using the same memory card.
The real loser here and elsewhere is the USB Flash drive, which is half the speed of the microSD card and a third of the speed of the SSD on the Pi 4. Chromium was the only app we tested with the USB Flash drive on the 3 B+, and the numbers show why. It’s painfully slow to use a USB Flash drive, or at least the Patriot Supersonic Rage drive that we used.
LibreOffice Calc Open Times with Pi 4 and SSD
The LibreOffice Calc spreadsheet app takes a little it of time to load, even on the fastest storage. But as you can see here, the Pi 4 got a 42% speed boost when we moved from microSD to SSD, and even the Pi 3 B+ benefitted by 27%. The Flash drive was weak, as expected.
GIMP Launch Time on Raspberry Pi 4 with SSD
GIMP, the free Linux alternative to Photoshop, is a powerful image editor, but it also has you stare at its splash screen for quite a bit of time before it loads. The gains here with SSD aren’t as significant as on LibreOffice or Chromium. Perhaps the real bottleneck for opening GIMP is processing, rather than storage.
One common use case for the Raspberry Pi is as a web server. In fact, at Tom’s Hardware, we use a Raspberry Pi 3 B server as part of our battery test (the laptops we test load pages from it). The good news here is that having a faster storage drive equates to handling more requests per second.
Apache Web Service Test with Pi 4 and SSD
Perhaps it’s no surprise that having faster storage would allow you to gather and send more data from the server to the client. However, the margin of difference here is very slight and non-existent for the 3 B+. I was surprised to see how well the Flash drive did here, considering how poorly it performed everywhere else.
It’s hard to put a number against the feeling of responsiveness in an OS, but you know it when you see it and notice even more when you don’t see it. Running core parts of the OS off of our USB Flash drive was an exercise in frustration and sluggishness. Very often just opening the start menu was laggy, with submenus taking seconds to appear. This only happened with the Flash drive.
IOzone File Transfers: 2 to 4 Times the Speed
The Linux equivalent of Crystal Disk Mark, IOzone, is a synthetic test that gives you sequential and random reads and writes. We performed our tests using a 100MB storage file and found the most interesting results with the 4K, 512K, 1024K and 16,384K (highest) block sizes. Blocks on the lower end of the spectrum, particularly during random reads and writes, represent the most common use case for opening and using apps, while the higher block sizes are good for saving or copying large files.
IOzone’s synthetic results confirmed what we found through regular use. The SSD was usually 2 to 4 times faster than a microSD card and as much as 13 times quicker when dealing with large, sequential reads or writes.
Random Reads with Pi 4 and SSD
At nearly every file size, the Pi 4 B with SSD rules the roost, but the Pi 4 B with microSD card is surprisingly powerful, beating the USB Flash drive at 4K on Pi 4 B and tying the Pi 3 B+ with USB Flash drive on other sizes. Even at low block sizes, the SSD on Pi 4 B is two to four times faster than the microSD card.
There are a couple of outliers where the Flash drive takes the lead. However, the Flash drive’s very poor performance at 4K random shows us why it takes much longer to boot and load apps.
Random Writes with Pi 4 and SSD
Random writes are even more important than random reads because the OS and software (ex: your web browser storing its cache) are always writing small files, so slowness here leads to sluggishness and unresponsiveness. The SSD on the Pi 4 definitely rules the roost here, and even the Pi 3 B+ benefits from solid state storage. But the USB flash drive is a disaster here at 4K, making the microSD cards look good. No wonder I saw lag even when opening the start menu with the USB Flash drive.
Sequential Writes on Pi 4 with SSD
On sequential writes, the SSD beats the tar out of the microSD card on both Raspberry Pi systems, with speeds as much as 13 times faster. However, at higher block sizes, the USB Flash drive is better than the microSD card for the Pi 4. I guess if you’re going to copy large files, the faster NAND in the Flash drive will bring a benefit.
Sequential Reads on Pi 4 with SSD
Again on sequential reads, which are helpful for doing large file operations, such as copies, the SSD leads the pack by a mile, offering 3 to 4 times the speed of a microSD card. The USB Flash drive does well with larger file blocks only.
Not Faster: Booting, Loading Web Pages, Streaming Video
There are many tasks that don’t benefit at all from having faster storage in the form of an SSD, though they do suffer from a slow Flash Drive. I was surprised to see that switching from the default microSD card to an SSD had almost no effect on boot time. To be fair, a lot of the boot process still takes place on the microSD card, but the rest of the OS -- including Windows -- loads right off of the external drive.
Boot Time on Raspberry Pi 4 with and without an SSD
While SSD and microSD performance was close on both systems, the Flash drive really hindered boot times.
Perhaps it’s no surprise that loading web pages and streaming web video were completely unaffected by the change in storage. As I said in my review of the Pi 4, 1080p YouTube videos appear sluggish when played at full screen but play fine in a window. That’s the case with either an SSD or a microSD card. Similarly, on the Pi 4 opening a Google document took about 7.3 seconds, and opening a cached version of the Laptop Mag home page took around 1.5 seconds.
You might think that a workload which involves encoding video or audio would speed up thanks to faster storage, but on the tests we ran, the numbers actually got a little slower with the SSD in some cases.
FFmpeg Transcoding Test on Pi 4 with and without an SSD
On the FFmpeg video transcoding test, the Pi 4 was actually a bit faster with its microSD card. However, the 3 B+, while much slower overall, was a tad quicker with an external SSD.
LAME MP3 Encoding Test on Raspberry Pi 4 with and without SSD
Encoding MP3 files with LAME was a similar experience. There was no difference at all between the different storage types.
The Bottom Line
Adding a powerful, external SSD to your Raspberry Pi 4 B can boost performance in certain areas, most notably application load times and web / file serving. But, according to our tests, there are also a lot of scenarios, like streaming video, surfing the web or transcoding media, where having an SSD doesn’t help.
And, if you get a USB Flash Drive -- unless it is one that has particularly high random read and random write numbers (two things not in a spec sheet) -- you’ll actually have a far more sluggish computer than if you just stick with a plain old microSD card. We’d like to see an affordable Flash drive that’s designed to work well on the Pi, but absent that, you’ll likely spend well over $100 purchasing both an M.2-to-USB 3.0 enclosure and the associated SSD.
So, for now, my advice is to get an external SSD for your Raspberry Pi only if you are planning to use it as a file or web server and you can afford the premium. Hopefully, at some point, we’ll find a USB flash drive that offers both affordability and performance for the Pi, but right now, we don’t think any exists.