java.lang.OutOfMemoryError: unable to create new native thread

本文介绍了在CentOS系统中如何解决因线程数限制导致的问题,并提供了具体的配置修改步骤。通过调整线程数限制,可以有效提升服务器的运行效率。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

可能的原因

1.Linux服务器自身硬件问题:

Centos默认的普通用户的线程限制为1024,可能登陆CentOS系统的用户,执行线程数过多,导致出现无法创建更多线程数的异常。

首先我们可以通过ulimit -u 来查看当前系统可支持的最大线程数。那么增加到多少是合适的呢。

比如8G的服务器得到的数值为62727,那我们就可以在这一个数值之内根据实际情况来设置该值,但是一定要比这一个值小,如果设置得比这一个值大,那么普通用户就能把这一个数量耗完,那么可能那时远程工具都不能连上服务器,只能到机房硬启动服务器才能解决了。

接下来修改这个值

CentOS系统6.0之前修改

在CentOS6之前修改/etc/security/limits.conf 即可,如果是CentOS6后的版本则推荐修改/etc/security/limits.d/90-nproc.conf 文件,因为系统会先读/etc/security/limits.conf,如果/etc/security/limits.d/目录下还有配置文件的话,也读进来,一起分析。这就意味/etc/security/limits.d/里面的文件里面的配置会覆盖/etc/security/limits.conf的配置。

*       soft    nofile      1048576
*       hard    nofile      1048576
*  soft nproc 4096
*  hard nproc 8192

 

根据dubbo官方文档分档可知,如果没有配置线程模型的情况下,默认为固定的一个dubbo服务启动时固定创建一个100个线程的线程池

25171928_M9Jd.jpg

 

http://blog.youkuaiyun.com/yangbutao/article/details/8348926

 

 

 

 

 

 

 

 

 

 

 

转载于:https://my.oschina.net/LucasZhu/blog/1579756

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值