云星穹铁道网页版入口,湖北seo网站推广,wordpress编辑小工具代码,德邦公司网站建设特点文章目录1. 问题现象2. 分析定位3. 解决方案4. 结果验证5. 总结1. 问题现象
java.lang.OutOfMemoryError: unable to create new native thread
2. 分析定位
生产上所有程序都是在jboss账户下运行#xff0c;于是查看该账户下所有的线程数总和为950#xff0c;也即是说于是查看该账户下所有的线程数总和为950也即是说随时都可能会超过1024导致内存溢出。查看进程当前运行的线程数命令为
查看当前所有的运行的java进程
ps -ef|grep java 查看指定进程目前正在运行的线程数量 pstree -p 进程号 | wc -l
pstree -p 3660 | wc -l如果出现-bash: pstree: 未找到命令 在线安装 yum install psmisc 原因找到操作系统对运行程序的账户有最大线程数限制。
3. 解决方案
vim /etc/security/limits.d/90-nproc.conf打开后发现除了root其他账户都限制在1024个。 于是增加一条
jboss soft nproc 20000为什么设置为20000因为测试后发现在运行到35000左右系统就报内存溢出了操作系统所有命令都不能使用因此将程序最大线程数限制在20000。
4. 结果验证
修改后再没出现内存溢出错误。问题解决。
5. 总结
经过总结在遇到问题后不能盲目的到处修改首先要做的就是重现问题顺藤摸瓜逐步的找出根本原因。