Akvicor
Akvicor
发布于 2025-11-13 / 9 阅读
0
0

Linux 错误: Too many open files

运行程序时提示 Failed to allocate directory watch: Too many open files, 这个问题可能是inotify數量限制了, 或者文件描述符限制了

inotify限制的情况

增加文件 vim /etc/sysctl.d/60-fs-inotify.conf, 写入下列内容

fs.inotify.max_queued_events = 32768
fs.inotify.max_user_instances = 2048
fs.inotify.max_user_watches = 524288

通过 sysctl --system 生效, 或者重启系统

  • fs.inotify.max_queued_events = 32768 : inotify 事件队列的最大长度

  • fs.inotify.max_user_instances = 2048 : 每个用户可创建的 inotify 实例数

  • fs.inotify.max_user_watches = 524288 : 每个用户可监视的文件/目录数量

注意示例的文件位置是debian13的推荐位置,如果使用debian12则可能需要修/etc/sysctl.conf

文件描述符限制的情况

编辑文件 /etc/security/limits.conf, 在文件末尾增加下列内容

* soft nofile 65536
* hard nofile 65536

重新登陆或重启生效


评论