相关一次weblogic请求挂起的问题分析

a8836246 2016-09-06 09:32:19
在生产环境中,5000多的活动执行线程,0个空闲线程。导致大量的请求挂起。

通过线程dump分析,5000多个活动线程中有2493个线程是如下线程:

"[ACTIVE] ExecuteThread: '4985' for queue: 'weblogic.kernel.Default (self-tuning)'" daemon prio=10 tid=0x00007ffb70015800 nid=0x61d5 in Object.wait() [0x00007ffac7295000]
java.lang.Thread.State: WAITING (on object monitor)
at java.lang.Object.wait(Native Method)
at java.lang.Object.wait(Object.java:485)
at weblogic.work.ExecuteThread.waitForRequest(ExecuteThread.java:205)
- locked <0x00000005d39cecc8> (a weblogic.work.ExecuteThread)
at weblogic.work.ExecuteThread.run(ExecuteThread.java:226)


之前分析线程dump时都认为这个线程时空闲等待线程,从今天的现象看应该不是,

所有请教各位,该线程是什么?为什么会生成如此多的这种线程。
...全文
473 2 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
Defonds 2016-09-06
  • 打赏
  • 举报
回复
你看一下你是不是配置的线程池太大了
Defonds 2016-09-06
  • 打赏
  • 举报
回复
顾名思义,执行线程。 weblogic 服务机制是这样的: weblogic 进程启动之后,它自己绑定到一个端口,同时还会分配一个监听线程到该端口以监听进来的请求。 请求连接之后,weblogic 会将该连接的控制权交给 socket muxer,后者从 socket 中读取请求并将其加入执行队列。 这时候一个空闲的 ExecuteThread 会从执行队列中提取一个请求,执行请求并返回响应。

81,122

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧