centos 6.x
内核版本2.6.32以上,修改/etc/security/limits.d/90-nproc.conf:因为系统是先读/etc/security/limits.conf的值,在用/etc/security/limits.d/90-nproc.conf去覆盖,所以,仅仅更改/etc/security/limits.conf是没有效果的
centos 5.x
centos 5.x 并没有90-nproc.conf这个文件,我这边是通过修改/etc/security/limits.conf,在最后添加
* soft nproc N
* hard nproc N
如果没有限制, 则最大值是由物理内存大小决定:/proc/meminfo(kb) 除以 128(kb),原理来自于:http://blog.yufeng.info/archives/2568
$ cat /proc/meminfo |grep MemTotal
MemTotal: 49421024 kB
$ echo "49421024 / 128"| bc
386101$ ulimit -u
385962注:BC命令行计算器
如果进程可能会无限制条用fork,且进程已经启动的情况下,在修改上述的值是无效的,以下为动态调整方法:
echo -n ‘Max processes=SOFT_LIMITS:HARD_LIMITS’ > /proc/`pidof mysqld`/limits
通过如上命令就可以动态调整已经存在的mysqld的processes限制了。