- 问题发现
生产应用现存在问题,影响到系统的使用,前端页面只配置了35个派生指标,后台任务生成20000多线程任务,占用了全部资源,导致其他系统也没资源可用,指标工厂也无法进一步使用,今天上午发的死锁也应该是这个原因引起的,在配置初期没有存在死锁的问题,派生指标配置的越来越多,后面配置的派生指标出现死锁的问题也越来越多,现在有5台机器,都已经快到机器的极限值,从前台配置和后台生成任务的比例来看,现在的代码应该是存在bug,或者在任务架构方面需要修改。
其中一台机器线程查询如下:
查看用户进程
[bdpcloud@host167 da]$ ps -u bdpcloud -L | wc -l
5348
统计RUNNABLE线程数量
[bdpcloud@host167 da]$ jstack 31

文章描述了一个生产环境中遇到的问题,由于前端配置的派生指标增加,导致后台生成大量线程,占用所有资源,引起系统性能下降和死锁。通过分析jstack日志,发现RUNNABLE状态的线程过多,定位到问题可能与AsyncRestTemplate的使用有关,特别是其原型作用域导致的线程池未关闭。解决方案是移除AsyncRestTemplate的原型作用域配置,以防止无限制创建线程。
最低0.47元/天 解锁文章
1788

被折叠的 条评论
为什么被折叠?



