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.
When you overwrite data on your flash disk it doesn’t just go to the same location and replace the data like a hard disk, it writes to a new location and saves that location as “valid” for a given block address.
NAND cells are erased when you need to free up space for new writes - but the erase block is large, so much so it’s likely that what you’re erasing contains data you need to save. You have to move that valid data to a new place and erase the block and this slows the whole operation down.
If you have very little unallocated space on your disk - more and more operations will require this shuffle and this shuffle is less efficient (you can’t wait to erase an ‘optimal’ block because they all contain 90% or more valid data that must be moved). A packed drive is therefore less efficient, but 2 different size drives at the same % fill won’t see the same performance loss because the larger one still has more scratch space to work with (most consumer drives set this aside as an SLC ‘cache’ to enable snappy performance and a more efficient stripe packing, but that cache shrinks as the drive fills.)
Tl;Dr - you don’t need to save 800GB of your 4TB drive, but saving 200GB or so will keep you from seeing any performance loss. If you use any consumer SSD in a 24/7 server workload they’ll all hit a wall eventually because they’re not designed for sustained performance.