本文主要是介绍kubernetes Pod failed to create fsnotify watcher: too many open files,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
fs.nr_open: 控制单个进程可以打开的文件描述符的最大数量。单个进程的文件描述符限制可以通过 ulimit 命令来设置。
- /proc/sys/fs/nr_open 是一个系统级别的全局参数,表示系统中单个进程能够打开的文件描述符总数的限制。
- /proc/sys/fs/file-max 系统级别,当前系统可打开的最大数量
- /etc/security/limits.conf 用户级别,指定用户可以打开的最大数量
问题描述:
kubernetes 集群使用promtail收集日志,发现一段时间有些机器日志收集不到查看promtail日志出现以下报错:error="filetarget.fsnotify.NewWatcher: too many open files"
1、单个进程打开文件书过多,修改文件描述符
vim /etc/security/limits.conf
* soft nofile 100001
* hard nofile 100002
root soft nofile 100001
root hard nofile 100002
- soft nofile 65535
- hard nofile 65535 这两个值都需要小于/proc/sys/fs/nr_open设置的值
2、操作系统打开文件句柄数过多
整个操作系统可以打开的文件句柄数是有限的,受内核参数“fs.file-max”影响。
可以通过执行“echo 100000000 > /proc/sys/fs/file-max”命令来动态修改该值,也可以通过修改"/etc/sysctl.conf"文件来永久修改该值
3.修改inotify
- fs.inotify.max_user_instances
含义: 限制单个用户能够创建的 inotify 实例的数量。 默认值: 取决于内核版本,通常是 128。 为什么会影响问题?
如果此值太低,用户将无法创建足够的 inotify 实例来监视文件和目录,可能导致 too many open files错误。通过将其增加到 819200,你提高了系统同时处理的 inotify 实例的数量,从而有助于避免相关的错误。
- fs.inotify.max_queued_events
含义: 限制 inotify 队列中待处理事件的数量。 默认值: 通常是 16384。 为什么会影响问题:
如果监视的事件发生得太快,队列可能会变满,导致后续事件丢失。通过增加此值,你扩大了系统处理事件的缓冲区,有助于防止队列溢出。
- fs.inotify.max_user_watches
含义: 限制单个用户能够为其监视的文件和目录设置的监视器(watches)的总数。 默认值: 通常是 8192。 为什么会影响问题:
如果监视的文件或目录数量太多,可能会达到默认的监视器数目上限,导致 too many open files 错误。通过将其增加到52428800,你提高了单个用户可以设置的监视器的数量,从而有助于避免相关的错误。 总体来说,通过调整这些 inotify参数,你扩大了系统处理文件系统事件的容量,从而减少了 too many open files错误的可能性。
需要注意的是,在调整这些参数时,要确保系统资源足够,以及对应的硬件和内核版本支持所需的数值。在生产环境中,调整这些参数之前最好进行适当的测试和评估。
[root@dell730-fm-100-2 ~]# sysctl fs.inotify.max_user_instances
fs.inotify.max_user_instances = 128
[root@dell730-fm-100-2 ~]# sysctl fs.inotify.max_user_instances=1024
fs.inotify.max_user_instances = 524288echo fs.inotify.max_user_instances=81920 >> /etc/sysctl.conf && sysctl -p
echo fs.inotify.max_queued_events=1638400 >> /etc/sysctl.conf && sysctl -p
echo fs.inotify.max_user_watches=52428800 >> /etc/sysctl.conf && sysctl -p
这篇关于kubernetes Pod failed to create fsnotify watcher: too many open files的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!