看到too many open files可能想到fs.file-max参数,其实还受下面参数影响:
- fs.inotify.max_queued_events:表示调用inotify_init时分配给inotify instance中可排队的event的数目的最大值,超出这个值的事件被丢弃,但会触发IN_Q_OVERFLOW事件。
- fs.inotify.max_user_instances:表示每一个real user ID可创建的inotify instatnces的数量上限,默认128.
- fs.inotify.max_user_watches:表示同一用户同时可以添加的watch数目(watch一般是针对目录,决定了同时同一用户可以监控的目录数量)
建议修改系统默认参数,方法如下(vi /etc/sysctl.conf):
- fs.inotify.max_user_instances=8192
注意: max_queued_events 是inotify管理的队列的最大长度,文件系统变化越频繁,这个值就应该越大。如果你在日志中看到Event Queue Overflow,说明max_queued_events太小需要调整参数后再次使用。
Wed Apr 13 14:00:27 CST 2016