Linux下进程数限制引发的服务异常

Administrator
发布于 2020-04-06 / 383 阅读 / 0 评论 / 0 点赞

Linux下进程数限制引发的服务异常

一个现场部署的比较早,已经好几年了,服务器一直没有重启过,但是上层服务接口一直无法访问,后台执行停止或者其他命令直接报了OutOfMemoryError,
[root@hdh14 log]# jps
Error occurred during initialization of VM
java.lang.OutOfMemoryError: unable to create new native thread
	at java.lang.Thread.start0(Native Method)
	at java.lang.Thread.start(Thread.java:717)
	at java.lang.ref.Finalizer.<clinit>(Finalizer.java:226)

首先给人的感觉是内存不够了,看了下内存还有70G没有使用,排除到内存不够引起的问题,然后注意到 unable to create new native thread ,这句话,就查看了系统设置的最大进程数和先在系统中进程数:
[root@hdh14 log]# sysctl kernel.pid_max
kernel.pid_max = 32768
[root@hdh14 log]# ps -eLf | wc -l
32724

直接找到了问题原因,系统的进程数达到了最大值,启动服务的时候直接导致无法创建进程,临时设置参数,重启失效:

echo 200000 > /proc/sys/kernel/pid_max

尽量将参数设置到系统配置中,sysctl -p 使配置生效。

echo 'kernel.pid_max=655360' >> /etc/sysctl.conf

sysctl -p


评论