Do I have a bad SSD?

Solution 1:

It could be an issue with the SSD, or with its firmware.

At work, we had two computers with ADATA SU650 SSDs that would drop to tens of MB/s read speed, sometimes even KB/s for certain sectors, with nothing unusual reported in SMART data or anywhere else. (The SSDs were only a year old.) They only recovered to normal after using an ATA "Enhanced Secure Erase".

I have Adata SU SATA SSD. 480GB.

You didn't mention the model. A lot of ADATA SU-series SSDs use QLC flash, and QLC flash is slow. (From what I could find, SU630 is QLC, though SU650 is probably not? Still unclear on that.)

Typically SSDs have some amount of very fast "write cache" SLC flash where writes go first (and then transferred to main flash), but if the entire copy doesn't fit in the write-cache, you'll begin writing directly to the main flash memory and the speed will drop accordingly.

It's not the only cause of slow write speeds, but it's a thing.

Or does it mean that there’s no contiguous block available to store 9GB in one go, so intermittently the file is stored in smaller chunks so momentarily speed drops? i.e. the file copy operation is sort of split between sequential + random I/O?

"Contiguous block" doesn't matter. Even on an HDD, if the filesystem had to start another extent elsewhere, it'd only have to seek once and the write speed would quickly return to maximum again.

(I think it doesn't make sense for it to be random blocks scattered around in the middle of a copy – even if the filesystem was so full and incredibly fragmented that the FS couldn't find a place to put larger extents, then it would continue all the way through, not suddenly return to normal.)

But with an SSD, when you don't have a mechanical read/write head and therefore no "seek time", there is no difference between a single contiguous 1GB extent and 10 smaller ones. (And it won't be contiguous physically either way, as logical sector numbers don't map 1:1 to flash storage – all SSDs have a "flash translation layer" which will map writes to whatever physical flash sectors it considers least-worn.)