Inotify Watches Limit (Linux)

For an intelligent IDE, it is essential to be in the know about any external changes in files it working with - e.g. changes made by VCS, or build tools, or code generators, etc. For that reason, the IntelliJ platform spins a background process to monitor such changes. The method it uses is platform-specific, and on Linux, it is the Inotify facility.

Inotify requires a "watch handle" to be set for each directory in the project. Unfortunately, the default limit of watch handles may not be enough for reasonably sized projects, and reaching the limit will force IntelliJ platform to fall back to recursive scans of directory trees.

To prevent this situation it is recommended to increase the watches limit (to, say, 1048576):

  1. Add the following line to a new *.conf file (e.g. idea.conf) under /etc/sysctl.d/ directory:
    fs.inotify.max_user_watches = 1048576
  2. Then run this command to apply the change:
    sudo sysctl -p --system

And don't forget to restart your IDE.

Note: the watch limit is per-account setting. If there are other programs running under the same account that also use inotify, the limit should be raised high enough to suit the needs of all of them.

Additional Information

Viewing the current setting: sysctl fs.inotify.max_user_watches

How many inotify watch handles are currently in use by which process: https://stackoverflow.com/a/60705427

Inotify memory usage: https://github.com/torvalds/linux/commit/92890123749bafc317bbfacbe0a62ce08d78efb7

50 out of 56 found this helpful
1 comment

Insite Linux there are a lot of /etc/ folders which one do you mean. what should be before …./etc/sysclt.d/ even when I search at sysctl.d there are many.

 

0

Please sign in to leave a comment.

Have more questions?

Submit a request