在Bash中有个ulimit命令,提供了对Shell及该Shell启动的进程的可用资源控制。主要包括打开文件描述符数量、用户的最大进程数量、coredump文件的大小等。
1. 系统级设置
1.1 CentOS 5/6
在CentOS 5/6等版本中,资源限制的配置可以在/etc/security/limits.conf设置,针对root/user等各个用户或者*代表所有用户来设置。
当然,/etc/security/limits.d/
中可以配置,系统是先加载limits.conf然后按照英文字母顺序加载limits.d目录下的配置文件,后加载配置覆盖之前的配置。 一个配置示例如下:
soft nofile 100000hard nofile100000soft nproc100000hard nproc100000soft core100000hard core100000
1.2 CentOS 7/RHEL 7
在CentOS 7/RHEL 7的系统中,使用Systemd替代了之前的SysV,因此/etc/security/limits.conf文件的配置作用域缩小了一些。
limits.conf这里的配置,只适用于通过PAM认证登录用户的资源限制,它对systemd的service的资源限制不生效。登录用户的限制,与centos 5/6一样,通过/etc/security/limits.conf和
limits.d来配置即可。
2. systemd service的资源限制设置
2.1 全局的配置
配置位置有两个位置:/etc/systemd/system.conf和/etc/systemd/user.conf,同时加载两个对应的目录中的所有.conf文