fs.inotify.max_user_watches默认值太小,导致too many open files

看到too many open files可能想到fs.file-max参数,其实还受下面参数影响:

  1. fs.inotify.max_queued_events:表示调用inotify_init时分配给inotify instance中可排队的event的数目的最大值,超出这个值的事件被丢弃,但会触发IN_Q_OVERFLOW事件。

  2. fs.inotify.max_user_instances:表示每一个real user ID可创建的inotify instatnces的数量上限,默认128.

  3. fs.inotify.max_user_watches:表示同一用户同时可以添加的watch数目(watch一般是针对目录,决定了同时同一用户可以监控的目录数量)

  4. 查看系统默认参数值:

  5. [root@node1 ~]#sysctl -a | grep max_queued_events

  6. fs.inotify.max_queued_events= 16384

  7. [root@node1 ~]#sysctl -a | grep max_user_watches

  8. fs.inotify.max_user_watches= 8192

  9. fs.epoll.max_user_watches= 201707

  10. [root@node1 ~]#sysctl -a | grep max_user_instances

  11. fs.inotify.max_user_instances= 128


建议修改系统默认参数,方法如下(vi /etc/sysctl.conf):

  1. fs.inotify.max_user_instances=8192

  2. 或者

  3. vim /etc/sysctl.conf

  4. fs.inotify.max_queued_events= 99999999

  5. fs.inotify.max_user_watches= 99999999

  6. fs.inotify.max_user_instances= 65535

注意: max_queued_events 是inotify管理的队列的最大长度,文件系统变化越频繁,这个值就应该越大。如果你在日志中看到Event Queue Overflow,说明max_queued_events太小需要调整参数后再次使


你可能感兴趣的:(max,inotify,fs)