OS X has several built in tools that suspend themselves when space is low. iOS has a far more evolved system where space is much more precious, and over time, those mechanisms are finding their way into OS X as well:
- General HFS+ optimization on spinning HD such as delayed allocation, pre-allocation and on the fly defragmentation of files
- local Time Machine snapshots (10.7 and later)
- Photos database (10.10 and later) can "reoptimize" and reduce storage when you run low.
- Cached files in ~/Library/Caches and /Library/Caches will probably get harvested under the correct storage pressure (no space for swap for instance). Look for iTunes music cached files, iCloud synced files
In the case of very large swings in storage, look first at Time Machine trying to thin the local backups when storage runs low past the "warning" level. Once those messages are logged to /var/log/system.log the time machine daemons will be more aggressive about pruning old backups, but not suspending local backups entirely.
Hot file optimization is where small files that are read from or written to often get tiered to the fastest portion of a spinning hard drive.
Keeping a little free space (I believe mtmd thinning begins at 20% of the volume) means you can have a longer range of local Time Machine snapshots to protect you from deleting a file or erasing some work without needing to connect an actual Time Machine drive to recover that file.
With more free space on the drive, the other optimizations can make your drive work faster, so it's more a performance issue when you get less than 10 or 5 GB of free space since the system has less flexibility in optimizing for speed and has to just write a file where there is room as opposed to where it would best be kept to minimize file fragmentation.
You can also run the
periodic cleanup scripts to see if rotating log files and pruning files in the various /tmp directories help in emergency cases. I've even gone so far as cleaning cached files after quitting the apps to get temporary reprieve to let a critical task finish or get a good backup of files before restarting the system to recover from the manual deletion.
My experience is you don't really see significant slow downs until you get to less than 15 GB of space - and sometimes not even until you get into the 5 GB of free space. In fact, these caching designs speed up the OS and help
with recovering files (in the case of Time Machine local backups). Running benchmarks can tell that drives start to slow down once you get them 30% full - so SSD are far more level in performance due to the lack of rotational time delays and head seek delays. They also have some overhead to allow a full drive to still have room to juggle delete and write operations since they address storage in larger chunks than the typical block size of an I/O.