linux上执行Systemctl命令后返回“Too many open files”

在linux系统下使用systemctl命令来管理服务时,发现返回”Too many open files”报错。调整/etc/sysctl.conf配置中的fs.file-max到32000000以及在/etc/security/limits.conf文件中给所有用户设置nofile文件打开数到102400也没有效果。

[root@yunweixia.com ~]# cat /etc/security/limits.conf
*       soft    nofile     102400
*       hard    nofile     102400

解决方案

1.创建一个文件/etc/sysctl.d/99-custom.conf,输入如下内容

[root@yunweixia.com ~]# cat /etc/sysctl.d/99-custom.conf
fs.inotify.max_user_instances = 512

2.加载配置

[root@yunweixia.com ~]# sysctl -p /etc/sysctl.d/99-custom.conf

备注: 如果不能生效,可能需要重建initramfs。sysctl值在引导早期通过initramfs进行配置,所以最后,重建initramfs以覆盖任何以前的持久化sysctl初始ramdisk映像中的设置。

[root@yunweixia.com ~]# dracut -f -v /boot/initramfs-xxxxx.img

扩展阅读

fs.inotify.max_user_instances是一个Linux内核参数,用于限制每个用户的inotify实例数量。inotify是一种Linux内核提供的机制,用于监视文件系统事件,如文件或目录的创建、修改、删除等.

fs.inotify.max_user_instances参数定义了每个用户可以创建的inotify实例的最大数量。每个inotify实例都可以监视一个文件夹或文件,以及其下的事件。通过限制实例数量,可以避免滥用和过度使用inotify机制带来的性能消耗。 默认情况下,fs.inotify.max_user_instances的值为128。

原创文章,作者:运维侠,如若转载,请注明出处:https://www.yunweixia.com/solutions/linux-systemctl-too-many-open-files-error-solution.html

(0)
运维侠的头像运维侠共建用户
上一篇 2025年7月26日 18:11
下一篇 2025年7月28日 18:11

相关推荐

发表回复

登录后才能评论