Question Curious... SSD speed, overprovisioning

OK.. I am curious (but to lazy to test carefully).. so thought you experts could guide me.
So I had a WD M2 Sata 500GB drive.. I replaced with a proper NvME M.2. but wanted to reuse..
So slotted it into a Sabrent standard SATA case and mounted it in my daughters PC.. pretty sure its performance was not stella... but OK.
But recently she was complaing poor performance.. so I took a look..
JEZ... it was SO SLOW... onloading a WoW zone would take 1min 19seconds.. on normal SSD, that was 17 seconds..
even as I moved wow from that drive to the new SSD, it was SO SLOw to transfer... on task manager... it immediately went up to 100% utilisation and stayed there (took over an hour to move the 80GB.. mostly about 5 MB/s), and the receiving SSD never got above 2% utilisation.
HOWEVER, the SSD was pretty much completely full (about 6gb Free) and I dont think it had any over provisioning.
So my questions
1. I dont ever remember it being that slow (and sure I would have noticed)... so would a full SSD with no overprovisioning slowly degrade in performance to that degree?
2. Should ALL SSD have overprovisioning? Samsung SSD (my go to brand) all seem to recommend..... and I believe some might have it in the drive yet completely separate/invisible to the user...

P.S. interestingly... once the 80GB was moved off... I today moved the rest... to a new 2TB SSD and it seemed to move so much better (I didnt track in task manage)
 
what exactly is overprovisioning and what does it do, and why would you use it?
Well.. it is "setting aside" some of the SSD space and leaving it unformatted.. the theory is that the controller will then be able to use the space to manage the SSD, so things like ensuring even use of SSD memory (to help it last longer) and use it as a temp space to copy stuff as it moves stuff around (to manage trim etc).
Samsung recommends 10% of the drive should be left unformatted and overprovisioned.
I dont know if just leaving 20% of the formatted space unused as @Misgar suggests helps.. as if formatted, the controller cant use it (I think?) ..
But if you do leave the recommended 10% (samsung recommend).. does that mean you can use the full rest of the drive without a performance his?
I dont know... its what/why I am asking...
 
1. I dont ever remember it being that slow (and sure I would have noticed)... so would a full SSD with no overprovisioning slowly degrade in performance to that degree?
Yes. There's a long winded explanation below as to why.

2. Should ALL SSD have overprovisioning? Samsung SSD (my go to brand) all seem to recommend..... and I believe some might have it in the drive yet completely separate/invisible to the user...
It's hard to say. I was under the impression that SSDs with a strange capacity (like 120GB, 240GB, and 960GB) had overprovisioning built in. But you really don't need to do it as long as you remember to keep enough free space in the SSD. Although if you don't want to think about that, shrinking the partitions to leave some of the SSD unallocated is enough.

what exactly is overprovisioning and what does it do, and why would you use it?
Overprovisioning is leaving space on the SSD unused. It's mostly to help SSDs with internal housekeeping.

The reason why it's needed is you can't erase flash memory at the bit level. You have to do it at the block level. The block's size depends on how the manufacturer defined it, but a typical size would be something like 128 to 512KB, but it could be anywhere from as small as 4KB into the megabyte range.

In any case, when you delete data ,the data isn't erased to be reused, it's simply flagged as "unavailable". But this creates "holes" in where data can't be written to. So the SSD does housekeeping once in a while to consolidate data where it makes sense and reclaim those unwriteable portions back. It does this by looking to see which flash blocks have mostly "holes" in them, copies the valid data to a fresh flash block, and erases the old one.

If you have a full SSD, it becomes harder to find fresh flash blocks to do this with.
 
  • Like
Reactions: Misgar
True overprovisioning is not visible to the end user or needs to be managed. Consumer drives let you fill them up so you have to manually provision them. Enterprise drives with overprovisioning generally reserve at least a flash chip if not sets of flash chips solely for the drive's benefit.

These days drives that have TLC or QLC flash will operate in SLC mode as much as possible. This means only writing one bit per cell rather than the 3/4 the flash is capable of. So the max performance of most drives relies on the drive not being full. If the drive is also full at this point it has no choice but to very slowly shuffle bits around to completely fill cells to make room for more data, so your data gets to wait in RAM or the drive's limited cache (Why it is advisable to get drives with their own DRAM cache, it can help with this). When space is ample, this isn't noticeable. As soon as your changes to the drive are completed it immediately begins to re-shuffle the data during idle times.

Hard drives are not immune to this. A full hard drive has to constantly reposition the read-write head to fill available bits. Why defragmenting was so potent back in the day, you would free up contiguous space on the disk for nearly sequential writes.
 
  • Like
Reactions: Misgar
helps to keep 10% of an ssd empty to maintain its speed.

True overprovisioning is not visible to the end user or needs to be managed.
most ssd have more memory on them than what they give the user. a 500gb ssd may actually have 512gb and it uses the extra memory for error correction, which is mainly what over provisioning is for. The bigger the drive, the more that is hidden.

Samsung Magician also allows you to set aside extra space so I did that on my 1tb drive, the unallocated space on drive is essentially hidden from OS as it can't see it
4inQMtC.jpg

My drive probably never wear out.