Low SSD speeds on Pi, how comes?

Hello everyone, long time issues no see.
I’ve come to you, big brains, to help me figure out what the cinnamon toast f*** is going on with my Raspberry Pi and SSD:

I recently got the Argon One M.2 base to go along with the standard case I bought when I got my Pi 4. Everyone was raving that it’s a good adapter and decided to get one. I got a newer revision compared to everyone on the internet and, supposedly, it’s equipped with a better firmware (supports TRIM, which the old firmware on the adapter didn’t).

Connected it, everything works but drive speeds are not up to the level where they should be. I get another drive, thinking the other one was drawing too much power and that was throttling the burst speeds. Still around the same speeds.

Decide to do some more testing: I connected an older external Kingston A400 240GB SSD with a genering Aukey USB 3.0 enclosure to the Pi and decided to run hdparm -t with and without mounting the drive.
The drive unmounted registers 299MB/s while the mounted drive 250MB/s. The mounted partition is getting the same speeds as my boot partition on the Samsung 860 Evo that I’m using right now.

I’ve seen that Kingston drive write at 350MB/s solid on Windows so it must be just as fast or faster on reads. The M.2 860 Evo should be even better because it’s a bigger and better quality drive. Yet they look capped just the same.

I did all my tests of fresh installs of Dietpi and Pi OS Bullseye 64 bit. I’m using a Pi 4 8GB overclocked to 2.0GHz with 4 overvolt. Using the official Raspberry Pi power supply. Everything inside the Argon One case (now with M.2).

I don’t know how to debug this situation, what tests to do, what could be wrong. Thanks!

Just a quick question. Are you expecting NVME speeds? The argon one does have an m.2 slot, but it is going through the usb3 connection. So I think 300ish MB/s is pretty good?

3 Likes

Absolutely not! It’s a SATA adapter so I’m expecting around 300MB/s. But, what I’m getting is consistently around 250MB/s, no matter what I do. Write speeds, according to the Dietpi benchmark don’t even go above 170MB/s.

This looks to me like something’s not working properly.

1 Like

You should install iostat and run “iostat -x 5” in the background while you do some transfers. This will show you lots of numbers, but you’ll mainly want to look at %util. If this is pegged at 100%, then you’re basically pushing the device as fast as it can go.

How much data were you transferring at once, the OS will cache writes, and the SSD will use its DRAM/SLC to sponge the first few GBs of writes - making it seem really fast. Also make sure you run fstrim before your tests, as this could be the cause for the slowdown.

Also is your USB enclosure using USB mass storage, or UASP? You’ll likely find UASP is needed for these kinds of speeds. UASP makes Raspberry Pi 4 disk IO 50% faster | Jeff Geerling

Finally is one of your cpu cores pegged at 100% during the transfer? It’s possible that the single thread of the program can’t push that much data at one time (depends a lot on the program).

1 Like

Gonna check it out immediately! Thanks for the suggestion.

Yeah, I know that. But I’m using a standard test like hdparam. It’s not filling the SLC cache on my Samsung 860 Evo so it should yeld the best results it can.

It’s the Argon One M.2 adapter, based on the AsMedia 1156 controller. It’s UASP and TRIM compatible.

Did it, made no difference whatsoever.

I don’t know. I’ve been comparing between Raspberry Pi’s at same or similar clockspeeds. Every review I see around manages higher speeds, even with the same device. And this is the second board and different SSD tested.
Another SSD I have (Kingston A400) with no UASP or TRIM has the same behaviour.

This topic was automatically closed 273 days after the last reply. New replies are no longer allowed.