本文主要是介绍一次因线程池使用不当造成生产事故OOM,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
美好的一天从bug结束
某日当我点开熟悉的界面,一个又一个请求失败的提示赫然出现在屏幕上,不会是昨晚上线的代码有问题吧?
吓得我急忙按F12查看了响应——"exception":"java.lang.OutOfMemoryError","message":"unable to create new native thread"
出现了内存溢出的情况,无法创建更多的本地线程。
监控中显端倪
接着查看了实例的监控大盘,发现每个实例的JVM线程数量都处于9000+的规模,且还有上涨的趋势。
这是其中一个实例的线程数量监控图:
10.17日出现下降,并不是由于GC,而是由于上线,所以会降到0。
当前服务一共有8个实例,临时的方案是从负载均衡中摘除1个节点,用作排查使用,其他实例则按照顺序进行原地重建。
dump线程日志
登录上这个容器,使用
这篇关于一次因线程池使用不当造成生产事故OOM的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!