简介
CentOS资源限制配置文件是/etc/security/limits.conf;限制用户进程的数量对于linux系统的稳定性非常重要。通常在服务器优化中,优化 limits.conf文件是最先选择。
limits.conf文件限制着用户可以使用的最大文件数,最大线程,最大内存等资源使用量。
配置及说明
省心配置如下
* soft core unlimited
* hard core unlimited
* soft fsize unlimited
* hard fsize unlimited
* soft data unlimited
* hard data unlimited
* soft nproc 102400
* hard nproc 102400
* soft stack unlimited
* hard stack unlimited
* soft nofile 409600
* hard nofile 409600
1、配置中soft是一个警告值,而hard则是一个真正意义的阀值,超过就会报错
2、* 代表针对所有用户
3、noproc 是代表最大进程数
4、nofile 是代表最大文件打开数,最大值不能超过$((2**20))=1048576
5、unlimited 为不限制
6、nofile不能设置unlimited,noproc可以
7、保存修改后,退出当前session,重新登录即生效
8、soft和hard一起设置才好使
常用命令
ulimit -u 最大进程数
ulimit -a 显示当前所有的资源限制
ulimit -H 设置硬件资源限制
ulimit -S 设置软件资源限制
ulimit -n 设置进程最大打开文件描述符数
临时设置
在常用命令后 添加临时设置即可,如:ulimit -n 65535,即当前session最大打开文件数为65535
常见配置未生效原因
当/etc/security/limits.conf修改后,配置并没有生效,可通过以下几点进行排查
1、检查/etc/ssh/sshd_config 中UsePAM yes选项是否开启
2、检查/etc/pam.d/system-auth 中是否存在session required pam_limits.so
3、检查/etc/pam.d/login 中是否将pam_limits.so文件被加入到启动文件中存在session required /lib64/security/pam_limits.so
4、最可能nofile没生效原因:/etc/security/limits.d/20-nproc.conf配置有细粒度的设置,和limits.conf中相同即可
服务器部署和版本原因,不一定是20-nproc.conf,也可能其他数字
以上流程过后,重新登陆,基本解决问题!
评论区