1、系统范围内限定资源使用
通常只需要修改/etc/security/limits.conf,增加相应数据行,重新登录下用户即可解决,具体如下所示:
vim /etc/security/limits.conf
* soft nofile 60000
* hard nofile 65535
* soft rss 1000000
* hard rss 1000000
2、细粒度限定资源使用
如需更细粒度的限定资源使用,可在/etc/security/limits.d/*-nproc.conf对指定用户(以test为例)进行限定:
vim /etc/security/limits.d/*-nproc.conf
test - nofile 4096 # '-' 代表soft及hard
nginx - nofile 4096
3、限定未生效排查
修改/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 中是否存在session required /lib64/security/pam_limits.so。
--注:
1)前述第1及2点中,“UsePAM yes”选项开启,表示启用pam模块,/etc/pam.d/sshd中默认已存在session include password-auth配置,include表示password-auth模块需要通过认证,/etc/pam.d/system-auth里还应存在session required pam_limits.so,表示使用/etc/security/limits.conf文件中配置;
2)前述第3点中,如使limits.conf文件配置生效,须将pam_limits.so模块文件加入到启动文件中,即应在/etc/pam.d/login配置文件中添加session required /lib64/security/pam_limits.so;
3)进行上述排查和修改后,重新登录用户就可以生效。