一般来说,修改ulimit的数值,只需要修改 /etc/security/limits.conf 即可,但是这个参数需要修改** /etc/security/limits.d/90-nproc.conf** 。
在centos 7.2中修改默认ulimit的配置文件 /etc/security/limits.d/20-nproc.conf 。
[root@test2 ~]# cat /etc/security/limits.d/20-nproc.conf
* soft nproc 655350
root soft nproc unlimited
重启系统,发现 ulimit -u 的值一直是15018.
ulimit -u
15018
CentOS 7 使用systemd替换了SysV。Systemd目的是要取代Unix时代以来一直在使用的init系统,兼容SysV和LSB的启动脚本,而且够在进程启动过程中更有效地引导加载服务。
在/etc/systemd目录下有一个系统的默认管理配置,这里有登陆、日志、服务、系统等。
因为上面的配置并不能实现我们的效果,所以还要编辑一个配置文件:/etc/systemd/system.conf
再次修改配置文件
cp /etc/systemd/system.conf /etc/systemd/system.conf.bak
sed -i ‘/^#DefaultLimitNOFILE=/aDefaultLimitNOFILE=655350’ /etc/systemd/system.conf
sed -i ‘/^#DefaultLimitNPROC=/aDefaultLimitNPROC=655350’ /etc/systemd/system.conf
reboot
重启之后,max user processes 已经修改成功
[root@test2 ~]# ulimit -a
core file size (blocks, -c) 0
data seg size (kbytes, -d) unlimited
scheduling priority (-e) 0
file size (blocks, -f) unlimited
pending signals (-i) 15018
max locked memory (kbytes, -l) 64
max memory size (kbytes, -m) unlimited
open files (-n) 655350
pipe size (512 bytes, -p) 8
POSIX message queues (bytes, -q) 819200
real-time priority (-r) 0
stack size (kbytes, -s) 8192
cpu time (seconds, -t) unlimited
max user processes (-u) 655350
virtual memory (kbytes, -v) unlimited
file locks (-x) unlimited
之后将 /etc/security/limits.d/20-nproc.conf 改成默认值,重启系统,发现此值不受影响。
[root@test2 ~]# cat /etc/security/limits.d/20-nproc.conf
* soft nproc 4096
root soft nproc unlimited
因此只需要修改 /etc/systemd/system.conf 这个配置文件即可。