Read more

How to see how many inotify instances are used by each process

Martin Schaflitzl
November 30, 2022Software engineer at makandra GmbH

As a developer you may have many tools watching your project for changes: Your IDE, Webpack, Guard, etc. This is often done with an inotify watcher. If you have too many inotify instances you may run into limits of your operating system.

Illustration UI/UX Design

UI/UX Design by makandra brand

We make sure that your target audience has the best possible experience with your digital product. You get:

  • Design tailored to your audience
  • Proven processes customized to your needs
  • An expert team of experienced designers
Read more Show archive.org snapshot

To find out which process is using them all up you can run:
sudo find /proc/*/fd/ -type l -lname "anon_inode:inotify" -printf "%hinfo/%f\n" | xargs grep -cE "^inotify" | column -t -s:

You will get a list like:

/proc/3753/fdinfo/7      1
/proc/3774/fdinfo/7      1
/proc/4034/fdinfo/12     14
/proc/4839/fdinfo/11     7
/proc/4871/fdinfo/12     98
/proc/50565/fdinfo/10    3
/proc/50565/fdinfo/14    266
/proc/50565/fdinfo/25    186
/proc/50620/fdinfo/19    164
/proc/5192/fdinfo/3      47697
/proc/5225/fdinfo/63     4
/proc/5274/fdinfo/23     3
/proc/6121/fdinfo/7      38

(...)

The number between /proc/ and /fdinfo/ is the PID of the process and the last number is the number of inotify instances used by that process.

In the example the PID 5192 uses the most instances. To get the name of that process you can run:
ps -ax | grep 5192
And the culprit here is RubyMine:

   5192 ?        S      0:08 /snap/rubymine/325/bin/fsnotifier
 303285 pts/1    S+     0:00 grep --color=auto 5192

To fix this either tell the process to use less (no idea how to do that for RubyMine) or just crank up the limit.

Posted by Martin Schaflitzl to makandra dev (2022-11-30 16:58)