CentOS 7修改ulimit描述符限制

Linux默认描述符限制1024,生产环境明显不够用,一般需要通过修改内核参数来进行优化,方法如下。

修改ulimit限制

修改/etc/security/limits.conf

*      soft    nofile  100000
*      hard    nofile  100000
*      soft    nproc   65535
*      hard    nproc   65535

修改/etc/security/limits.d/20-nproc.conf

*          soft    nproc     65535
root       soft    nproc     unlimited

以上配置只针对登录用户,而对systemd管理的服务不起作用

在Centos7系统中,使用Systemd替代了之前的SysV。/etc/security/limits.conf文件的配置作用域缩小了。/etc/security/limits.conf的配置,只适用于通过PAM认证登录用户的资源限制,它对systemd的service的资源限制不生效。因此登录用户的限制,通过/etc/security/limits.conf与/etc/security/limits.d下的文件设置即可。

对于systemd service的资源设置,则需修改全局配置,全局配置文件放在/etc/systemd/system.conf和/etc/systemd/user.conf,同时也会加载两个对应目录中的所有.conf文件/etc/systemd/system.conf.d/.conf和/etc/systemd/user.conf.d/.conf。system.conf是系统实例使用的,user.conf是用户实例使用的。

修改 /etc/systemd/system.conf

echo 'DefaultLimitNOFILE=100000' >> /etc/systemd/system.conf
echo 'DefaultLimitNPROC=65535' >> /etc/systemd/system.conf

DefaultLimitNOFILE=100000
DefaultLimitNPROC=65535

重启后生效

查看当前进程的最大可以打开的文件数

cat /proc/进程ID/limits

参考:CentOS 7 限制修改ulimit修改

标签: 无

发表评论: