结合Linux线程数限制配置dubbo服务线程的经验分享

假设我用普通用户部署10个服务,线程数都用dubbo缺省值(100),部署到同一台机器上,那么这10个服务所占用的线程也就是10*100 = 1000。会导致部署时,抛java.lang.OutOfMemoryError:unable to create new native thread异常。

解决方案如下

#vi /etc/security/limits.d/90-nproc.conf 

dfbcbc115cbb14fb8e7653edbc78e629f37.jpg

可以看出*号,也就是普通用户,他的线程数限制是1024,而root用户他是不限制的。这时候可以对1024的值进行增加,那么这个值我们能设置成多少?可以根据这台机的内存去计算出来。

 

计算方式:
default_nproc = total_memory/128K;
$ cat /proc/meminfo |grep MemTotal

假设上面的cat /proc/meminfo |grep MemTotal结果为3907380
$ echo "3907380 / 128"| bc
$ ulimit -u
ulimit -a # 显示目前资源限制的设定
ulimit -u # 用户最多可开启的程序数目
重启, 使之生效: # reboot

转载于:https://my.oschina.net/u/3155476/blog/3062641

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值