As already stated by
@whitby SSDs are susceptible to write performance degradation as the drive reaches capacity.
At a 10,000 foot level it's because an SSD, unlike a spinning hard drive, cannot update existing data. Changes to a file are written to new space on the drive, pointers updated to reflect the new location, and the old space marked as available. At some point this used, but available space, is erased making it available for writing once again.
If free space is at a premium updates that need to be written have to wait as the drive erases available blocks, a time consuming process in computing time. Keeping sufficient free space means updates can immediately be written and the reclamation (i.e. erasing) of the old blocks can occur when the drive is not busy.
At least that's how I understand it.
This is pretty accurate.
Additionally: if your SSD is constantly fairly full (lets say above 80-90 percent), with mostly static content, you’re going to reduce its ability to do wear levelling.
ALSO - despite having no moving parts, filesystem fragmentation is still a thing. I’ve had a system (a server) so fragmented before due to little free space and high read/write workload that it could not write to disk despite having “free space”. Essentially the
filesystem ran out of ability to track all the fragments.
Recommendations: treat 80-90 percent as FULL. Try to keep below 80 percent per above posts. On a modern OS, all drives, even SSDs need some free space to work with during normal operation. Not just for swap - as above things like garbage collection, more fragmentation due to inability to find contiguous blocks at the FS level, etc.
If you’re constantly above 80 percent, remove some old stuff you don’t need, offload it to external media, and/or consider whether you can justify a step up on storage capacity - because if you aren’t just being lazy with file management and actually need everything on the machine at 80% plus full - you really should probably be in the next tier up in capacity for all of the above reasons. Chances of it “breaking” or failing is low… but certainly performance will be impacted over time.
Also in addition to all that - larger SSDs tend to have larger caches, which improves performance outside of all of the above as well. In general if you can afford it i suggest to honestly evaluate how much storage you expect to need and then buy
one tier up. This way you’ll ensure longevity of the machine, have space for local time machine snapshots, get great wear levelling, larger SSD cache, etc. Plus, if you need some temporary space to store things (e.g., an iphone backup, temporary copy of a project or whatever) - you can use that, rather than having to go buy a thumb drive, external drive, etc. You already have it.