this post was submitted on 27 Nov 2023
1 points (100.0% liked)

Hardware

47 readers
1 users here now

A place for quality hardware news, reviews, and intelligent discussion.

founded 1 year ago
MODERATORS
 

I always hear people saying you need to leave ~20% of the space on your SSD free otherwise you'll suffer major slowdowns. No way I'm buying a 4TB drive and then leaving 800GB free on it, that is ridiculous.

Now obviously I know it's true. I have a Samsung 850 Evo right now that's 87% full, and with a quick CrystalDiskMark test I can see some of the write speeds dropped to about a third of what they are in reviews.

I'm sure that the amount of performance loss varies between drives, which to me would be a big part in deciding what I'd rather buy. AnandTech used to test empty and full drives as part of their testing suite (here, for example), but they don't have any reviews for the more interesting drives that came out in the last couple of years, like 990 Pro, SN850X, or KC3000.

Is there anyone else doing these kinds of benchmarks, for an empty and filled drive? It would be a lot better knowing just how bad filling a drive is instead of throwing 20% of it away (some suggest to keep 50% full at most) as some kind of rule of thumb.

you are viewing a single comment's thread
view the rest of the comments
[–] [email protected] 1 points 11 months ago (2 children)

I don't keep up with SSD benchmarks, but the mechanism behind this phenomenon is not anything mysterious. Most consumer SSDs ship with TLC or QLC NAND, which supports either 3 or 4 bits of storage per cell. However, writing the full 3 or 4 bits is slower than just writing one bit in each cell, so the drives use available empty NAND as an SLC write cache while the drive is still not full. So when you write to a relatively empty drive, your data will go into the DRAM cache on the controller (if there is any being used as a write buffer) and then get written into available NAND chips in SLC mode. Later on, the drive will consolidate the data down into QLC/TLC properly, but you get the advantage of a fast write so long as there is enough empty NAND to use SLC caching.

Obviously this falls apart once your drive gets close to full and there are no available empty NAND chips to write to as SLC cache. This is also why the write performance of budget drives tends to drop off worse than higher end drives. The nicer drives have faster NAND and usually have DRAM on the SSD controller to help performance in the worst case. Enterprise drives often sidestep this issue entirely via just using SLC or MLC NAND directly, or by having additional overprovisioning (extra NAND chips).

[–] [email protected] 1 points 11 months ago (3 children)

990 Pro 4TB has two 16Tb TLC chips (2TB each),and 442GB SLC cache.

Does that mean the SLC cache is included in that 4TB, or is it separate? Because if it was separate, this would imply that it's there to be used even if the TLC chips are completely filled so the cache speed would not decrease when full, only writing to the TLC flash afterwards.

Unless that's how overprovisioning works? 990 Pro has 370GB overprovisioning within the TLC flash and 442GB SLC cache, together they roughly cancel out to give a total of 4TB capacity, which I guess would explain why cache runs out when the drive is full.

[–] [email protected] 1 points 11 months ago

I can't speak to the details of the 990 Pro specifically, I don't keep up with individual drives that closely. I would guess that your understanding is correct, but someone else on the sub can probably chime in with the details for the current crop of high end drives.

[–] [email protected] 1 points 11 months ago

It's proportional, and decreases as available space decreases.

[–] [email protected] 1 points 11 months ago

look for example at this SSD https://www.techpowerup.com/ssd-specs/samsung-990-pro-2-tb.d862

it has up to 216GB dynamic SLC cache - this is repurposing the free TLC NAND as SLC.

it also has 10GB static SLC cache - this is dedicated, separate to the TLC NAND.

[–] [email protected] 1 points 11 months ago

your data will go into the DRAM cache on the controller

The DRAM cache on NVMe SSDs isn't used for user data.

https://www.reddit.com/r/zfs/comments/wapr7a/intel_to_wind_down_optane_memory_business_3d/ii6vb3m/