在线播放列表
应用运行在weblogic上可能经常会遇到控制台出现线程阻塞的问题,遇到此告警我们怎么定位呢,希望本编经验可以解决你的问题。
工具/原料
- centos7.4
- weblogic10.3.6
- xshell
方法/步骤
步骤一:登录控制台,环境-服务器,看到domain上健康状态为warnning。
步骤二:线程的会话粘滞时间(StuckThreadMaxTime)默认是600s,当事务执行超过600s后就会出现此告警,大多为sql执行过慢导致。
步骤三:进入告警的domain,按照如下操作
监视-线程,可以看到当前服务上有独占线程使用。
步骤四:点击转储线程堆栈,然后ctr+F搜索stuck可以查询到具体的线程号,根据线程后去日志上查询,可以定位到具体事务。
根据经验,如果定位到时sql慢,需要优化sql,是否使用索引,是否做过表分析进行优化。
总结:线程阻塞有如下三种方法解决:
1)修改StuckThreadMaxTime参数,将默认的600s改成1200s,或者其它适合的值。
2)增大线程数,防止线程阻塞问题。
当然,优化程序是彻底的解决方法,增加StuckThreadMaxTime,只是告警不在了,实际上事务处理还是慢。
END
注意事项
- 喜欢记得关注我哦,你的鼓励是我创作的动力。
- 秋天的第一杯奶茶,你喝了吗?
未经允许不得转载:经验百科 » weblogic线程阻塞问题定位
最新评论
好东西