本文作者:丁辉
日志报文件数超出系统限制问题
遇到报错
failed to create fsnotify watcher: too many open files
解决方法
临时设置
1
sudo sysctl fs.inotify.max_user_instances=8192
永久设置
1
2echo "fs.inotify.max_user_instances=8192" | sudo tee -a /etc/sysctl.conf
sudo sysctl -p
参数含义
参数 | 说明 |
---|---|
fs.inotify.max_user_instances |
每个用户(user)可以创建的 inotify 实例(watcher 的集合)最大数量 |
8192 |
将限制提升到 8192 个实例 |
- inotify 是 Linux 提供的文件系统事件监控机制,应用程序可以用它来监控文件或目录的变化(创建、删除、修改等)。
- 每个 inotify watcher 占用一个 inotify 实例的资源。
- 默认值通常较小(如 128 或 1024),在日志收集、文件监控场景下容易不够用。
为什么要设置大一点
例如 Promtail、Fluentd、Filebeat 等日志收集工具,会 为每个被监控的日志文件创建 inotify watcher:
- 如果你的机器上有大量容器或日志文件:
- 默认
max_user_instances
太小 → Promtail 会报错failed to create fsnotify watcher: too many open files
- 默认
- 提升到 8192 或更高,可以允许单个用户(比如运行 Promtail 的
root
或容器内用户)创建更多 inotify watcher。
I'm so cute. Please give me money.
- 本文链接: https://blog.offends.cn/Kubernetes/问题记录/日志报文件数超出系统限制问题.html
- 版权声明: 本博客所有文章除特别声明外,均默认采用 CC BY-NC-SA 4.0 许可协议。