如何找出inotify的手表已经注册?(How do I find out what inotify

2019-08-03 15:42发布

我有我的inotify的手表限制设置为1024(我觉得默认的是128?)。 尽管如此,自耕农,警卫和Dropbox不断地失败,并告诉我要我的inotify的限制。 在这样做之前,我想知道什么是消费我所有的手表(我在我的Dropbox很少文件)。

有没有的/ proc或/ SYS,或者其他的工具,我可以运行的一些区域,找出手表目前注册?

Answer 1:

inotify的文件系统选项

sysctl fs.inotify

打开的文件

lsof | grep inotify | wc -l

增加这样的价值观

  • sysctl -n -w fs.inotify.max_user_watches=16384
  • sysctl -n -w fs.inotify.max_user_instances=512


Answer 2:

  1. 的默认最大数量inotify手表是8192; 它可以通过写的/ proc / SYS / FS / inotify的/ max_user_watches增加。
    您可以使用sysctl fs.inotify.max_user_watches来检查当前值。

  2. 使用tail -f验证,如果你的OS不超过inotify最大手表的限制。
    内部实现的tail -f命令使用inotify机制来监测文件的变化。
    如果您已经用完了您的inotify手表,你很可能会得到这个错误:

    尾巴:inotify的不能用,恢复到轮询:打开的文件太多

  3. 要了解inotify手表已经被注册,你可以参考这个 ,和这个 。 我试过,但没有得到理想的结果。 :-(

参考:
https://askubuntu.com/questions/154255/how-can-i-tell-if-i-am-out-of-inotify-watches
https://unix.stackexchange.com/questions/15509/whos-consuming-my-inotify-resources
https://bbs.archlinux.org/viewtopic.php?pid=1340049



Answer 3:

由于这是在高谷歌的结果,我的复制粘贴部分我的回答来自于Unix / Linux操作系统StackExchange类似的问题了:

我就遇到了这个问题,并没有回答这些问题给你的回答“有多少手表的每个进程正在使用?” 该单行都给多少实例是开放的,这是故事的一部分,以及跟踪的东西是看被打开新的手表才有用。

这将让您用开放列表的文件, inotify情况下,他们有手表的数量 ,与他们产生了,整理由表计数降序排列PID和二进制文件一起:

sudo lsof | awk '/anon_inode/ { gsub(/[urw]$/,"",$4); print "/proc/"$2"/fdinfo/"$4; }' | while read fdi; do count=$(sudo grep -c inotify $fdi); exe=$(sudo readlink $(dirname $(dirname $fdi))/exe); echo -e $count"\t"$fdi"\t"$exe; done | sort -nr > watches

如果你是在什么乱七八糟的那个大球做,为什么位数的,我在深入阐述了原来的答案 。



Answer 4:

我认为

sudo ls -l /proc/*/fd/* | grep notify

可能是有用的。 你会得到有注册的inotify的FD的PID的列表。

我不知道如何得到比这更多信息! HTH



Answer 5:

下面的终端命令完美工作,我在我的Ubuntu 16.04机器:

for foo in /proc/*/fd/*; do readlink -f $foo; done |grep inotify |cut -d/ -f3 |xargs -I '{}' -- ps --no-headers -o '%p %U %a' -p '{}' |uniq -c |sort -n

我的问题是,我有一个很好的多数装在崇高的文本文件夹我的硬盘。 之间/opt/sublime_text/plugin_host 8992/opt/sublime_text/sublime_text ,有崇高的inotify的18个实例,而我的计划的其余部分都是1-3之间。

因为我是做离子移动应用程序开发我加入大Node.js的文件夹“node_modules”在崇高的设置忽略列表降低5实例的数量。

"folder_exclude_patterns": [".svn", ".git", ".hg", "CVS", "node_modules"]

来源: https://github.com/SublimeTextIssues/Core/issues/1195



文章来源: How do I find out what inotify watches have been registered?
标签: linux inotify