`

-bash: fork: retry: No child processes!-sh: fork failed – too many processes

 
阅读更多

-bash: fork: retry: No child processes

 

 

 

更改vi /etc/security/limits.d/20-nproc.conf

有的是更改vi /etc/security/limits.d/90-nproc.conf

*          soft    nproc     4096

root       soft    nproc     unlimited

 

把4096更改为更大或者unlimited

 

 问题排查

1. 关闭www下所有应用

为了安全JAVA应用跑在一般用户(www),由于报错,切换www用户,提示系统资源限制,于是关闭www用户下所有应用,使能切换到www用户下,方便排除问题。

2. 查看www用户配置文件ulimit参数

[root@OneinStack ~]# su - www

[www@OneinStack ~]$ 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) 256345

max locked memory       (kbytes, -l) 64

max memory size         (kbytes, -m) unlimited

open files                      (-n) 65535

pipe size            (512 bytes, -p) 8

POSIX message queues     (bytes, -q) 819200

real-time priority              (-r) 0

stack size              (kbytes, -s) 10240

cpu time               (seconds, -t) unlimited

max user processes              (-u) 1024

virtual memory          (kbytes, -v) unlimited

file locks                      (-x) unlimited

从上面可以看出,系统默认max user processes为1024,显然就是这个问题。

3. 查看系统ulimit全局参数

[root@OneinStack ~]# grep -v ^# /etc/security/limits.conf

* soft nproc 65535

* hard nproc 65535

* soft nofile 65535

* hard nofile 65535

奇怪,通过系统ulimit全局参数看,*代表所有用户,www用户竟然还有限制,于是Google获知,REHL6下引入配置文件/etc/security/limits.d/90-nproc.conf(可参考:https://bugzilla.redhat.com/show_bug.cgi?id=919793)

注:也可能是其它命名,如Linode修改为:/etc/security/limits.d/20-nproc.conf

4. 修改/etc/security/limits.d/90-nproc.conf

[root@OneinStack ~]# grep -v ^# /etc/security/limits.d/90-nproc.conf

*          soft    nproc     1024

root       soft    nproc     unlimited

问题就在这里,这里限制为1024

修改为65535,保持文件如下:

[root@OneinStack ~]# grep -v ^# /etc/security/limits.d/90-nproc.conf

*          soft    nproc     65535

root       soft    nproc     unlimited

退出当前用户,重新登录即可让之前修改的limits生效,执行如下命令发现修改成功

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics