1.文件描述
系统打开文件数过多报错:Error :Too many open files
2.原因分析
报这个错可能与如下因素有关
(1)cat /etc/security/limit.conf 里面配置的句柄数
* soft nproc 1048576
* hard nproc 1048576
* soft nofile 1048576
* hard nofile 1048576
* soft stack 1048576
* hard stack 1048576
(2)内核参数
fs.file-max=1048576
fs.inotify.max_queued_events =16384
fs.inotify.max_user_watches = 1048576
fs.inotify.max_user_instances = 1048576
fs.file-max=1048576 :最大打开文件句柄数。
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一般是针对目录,决定了同时同一用户可以监控的目录数量)
3.处理。
1.我首先修改了: /etc/security/limit.conf 里面
* soft nofile 1048576
* hard nofile 1048576
但是没有凑效。
2.于是又修改了
vi /etc/sysctl.conf
fs.inotify.max_user_watches = 1048576
fs.inotify.max_user_instances = 1048576
sysctl -p
加入如下参数并使之生效,果然上面的报错消失