You're running a log shipper or a config reloader and suddenly it starts failing with ENOSPC — "No space left on device." You check df -h, and the disk is fine. Plenty of inodes, plenty of blocks. So why is the kernel refusing to do work?
Chances are it's not disk space at all. It's the inotify watch limit.
inotify is the kernel's file change notification mechanism. Every directory you watch with tools like inotifywait, a config reloader, or a log shipper consumes a "watch." Those watches come from a finite pool, and when you exhaust it, the kernel returns ENOSPC even though the filesystem is nowhere near full. The error message is misleading, and it's easy to burn an hour chasing disk space that was never the problem.
Check the limits first
Two sysctls control this:






