骏骏的运维小窝

Systemd:too many open files

2025/11/15
3
0

本文介绍了当使用systemd启动服务后报错"太多文件句柄",该现象不符合limit.conf中设置预期的问题。

最大文件数限制

在CentOS中,有时使用systemctl启动某个服务之后,通过```cat /proc/$pid/limits```命令查看到它的资源限制与/etc/security/limits.conf中配置的不一致。


原因:

CentOS7中,使用systemd替代了之前的SysV,因此/etc/security/limits.conf文件的配置作用域缩小了一些。

limits.conf中的的配置,只适用于通过PAM认证登录用户的资源限制,即对systemd的service的资源限制不生效。


解决方案:

若通过systemctl start启动服务,则需要在对应的service文件中添加如下配置:

LimitCORE=infinity
LimitNOFILE=100000
LimitNPROC=100000