看到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一般是针对目录,决定了同时同一用户可以监控的目录数量)
- 查看系统默认参数值:
- [[email protected] ~]#sysctl -a | grep max_queued_events
- fs.inotify.max_queued_events= 16384
- [[email protected] ~]#sysctl -a | grep max_user_watches
- fs.inotify.max_user_watches= 8192
- fs.epoll.max_user_watches= 201707
- [[email protected] ~]#sysctl -a | grep max_user_instances
- fs.inotify.max_user_instances= 128
建议修改系统默认参数,方法如下(vi /etc/sysctl.conf):
- fs.inotify.max_user_instances=8192
- 或者
- vim /etc/sysctl.conf
- fs.inotify.max_queued_events= 99999999
- fs.inotify.max_user_watches= 99999999
- fs.inotify.max_user_instances= 65535
注意: max_queued_events 是inotify管理的队列的最大长度,文件系统变化越频繁,这个值就应该越大。如果你在日志中看到Event Queue Overflow,说明max_queued_events太小需要调整参数后再次使
时间: 2024-11-08 07:54:02