Is it bad to have filesystems nearly full?

A filesystem does not break just because it's full, so there is no problem from the filesystem's point of view. Files are more likely to fragment once the filesystem is near full, and performance problems are possible depending on the filesystem, but that is usually not critical.

The real problem is that on a full filesystem, any write will fail. So it depends on what will be trying to write on such a filesystem.

Many programs must be able to write / save data in order to function properly. So if your filesystem is full when something is trying to write, you will experience data loss or breakage on the application layer. "I tried to save your data, but couldn't" is a case that many programs do not handle particularly well. Worst case the program will have started to overwrite the old save file before noticing there won't be enough room for the new save file, so you lost both.

For system critical things (e.g. any writes happening at startup/shutdown, logging facilities, etc.), a full filesystem could in worst case render your system unable to function properly; ext* filesystems have a root reserve for that very reason, to allow system things (root) some free space when everything else is full. This is a case where you should provide some additional storage or delete some old stuff.


From a production viewpoint it's a bad state to be in. Firstly performance degrades as disk usage increases. When a disc nears full capacity there are less sequential areas of the disk to store data in. This impacts performance due to the additional disk seeks and latency effects waiting for a free sector to reach the disk head.

More important is the potential effect on the system. Is the server providing a vital service? How long will it be before the development and operations teams become aware that services are down? How long will it be before users get angry when there is no service available? Applications will often freeze when there is no storage to write to. There may be knock-on effects which can cause further problems - adding even more time before services are fully restored. And when service has been restored the system state may be unbalanced - for example a huge backlog of incoming data during service down time causes delays in processing.

Tags:

Filesystems