tomcat频繁宕机,线程数不断网上涨,大量线程被阻塞,附jconsole 线程状态

sansong089 2008-05-12 01:15:26

jconsole 查看线程
一种线程这样
名称: http-80-Processor1
状态: RUNNABLE
阻塞总数:172 等待总数: 426

堆栈追踪:
java.net.SocketInputStream.socketRead0(Native Method)
java.net.SocketInputStream.read(SocketInputStream.java:129)
org.apache.coyote.http11.InternalInputBuffer.fill(InternalInputBuffer.java:737)
org.apache.coyote.http11.InternalInputBuffer.parseRequestLine(InternalInputBuffer.java:398)
org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:761)
org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:705)
org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java:577)
org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:683)
java.lang.Thread.run(Thread.java:595)


另一种这样
名称: http-80-Processor2
状态:WAITING 在 org.apache.tomcat.util.threads.ThreadPool$ControlRunnable@1959ad3 上
阻塞总数:0 等待总数: 486

堆栈追踪:
java.lang.Object.wait(Native Method)
java.lang.Object.wait(Object.java:474)
org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:655)
java.lang.Thread.run(Thread.java:595)



不太明白“阻塞总数:172 等待总数: 426”的具体含义。

仁者见仁,智者见智,解决了加分。
...全文
6419 35 打赏 收藏 转发到动态 举报
写回复
用AI写文章
35 条回复
切换为时间正序
请发表友善的回复…
发表回复
xdzbb 2011-08-09
  • 打赏
  • 举报
回复
楼主,我也遇到同样的问题,头大了,分享一下吧!
oscar325 2010-05-20
  • 打赏
  • 举报
回复
有没有考虑一下服务器ipv6和jdk socket的问题?
左大神在这 2009-06-29
  • 打赏
  • 举报
回复
我也遇到一样的问题,楼主解决了没有,一起分享下。 有兴趣一起探讨。
yy199771 2008-11-27
  • 打赏
  • 举报
回复
定。我也遇到类似的情况。
光义 2008-06-06
  • 打赏
  • 举报
回复


路过学习下...等待解决了..

嘿嘿..
wolf00781 2008-06-06
  • 打赏
  • 举报
回复
我用的TOMCAT,在这中情况下,我在TOCMAT的控制台右击鼠标就可以释放掉被占用的线程,并且可以看到打印出来的错误异常,不知道是怎么原因,原来是我配置的有LOG4J,这个东西对线程好像有影响,好像他会出现打印不了异常时,就会出现线程释放不了,后来我给卸掉了,就好了,
wolf00781 2008-06-06
  • 打赏
  • 举报
回复
我测试了一下,这个没有被释放掉的线程在用完之后,有继续被别的请求使用,处理新的工作,
另外还发现的是被挂掉的线程一直被占用的情况,在处理自己的工作时没有关闭掉连接,也会出现这个现象,
YuLimin 2008-06-05
  • 打赏
  • 举报
回复
做ThreadDump一下,看看是什么在阻塞。
fightbackbaby 2008-06-03
  • 打赏
  • 举报
回复
没有碰到过这样的情况,关注~~
heidian 2008-06-03
  • 打赏
  • 举报
回复
关注...
sansong089 2008-06-02
  • 打赏
  • 举报
回复
没有死锁的问题
所有线程都是和上面两种相同。
“阻塞总数:172 等待总数: 426” 这些加起来就有600个线程但是系统的活动线程数也没有那么多呀。
zl5897 2008-05-24
  • 打赏
  • 举报
回复
线程堆栈信息太少了,楼主有看到"waiting to lock "之类的东西吗?
往往线程柱塞是因为需要获取某些资源锁,而导致的等待。
zzr173 2008-05-22
  • 打赏
  • 举报
回复
没碰到这样的问题,关注
sansong089 2008-05-22
  • 打赏
  • 举报
回复
阻塞总数:172 等待总数: 426
应用的状态都是从这些指标中判断的,怎么还没有意义呢?只是我不是太清楚什么意思!
sansong089 2008-05-21
  • 打赏
  • 举报
回复
我想先搞清楚“阻塞总数:172 等待总数: 426”的含义,由没有清楚的?
wolf00781 2008-05-21
  • 打赏
  • 举报
回复
ding
yassee 2008-05-21
  • 打赏
  • 举报
回复
关注!
wolf00781 2008-05-21
  • 打赏
  • 举报
回复
[Quote=引用 13 楼 sansong089 的回复:]
我想先搞清楚“阻塞总数:172 等待总数: 426”的含义,由没有清楚的?
[/Quote]

这个没有太大的意义,就是字面的意思
spaceko2006 2008-05-21
  • 打赏
  • 举报
回复
路过学习
wolf00781 2008-05-20
  • 打赏
  • 举报
回复
比如一个链接现在被GOOGLE收取了,过了几天你的服务器上把这个链接去掉了,程序也去掉了,但是在GOOGLE在定时更新抓取这个连接时,就会出现线程占用的现象,他也不是有搜索引擎引起的,只是在偶然的情况下,这个链接在被抓取时出现了长时间的占用线程,就会很快的增线程的占用数,导致别的请求不能够获取线程的 想象出现,我用户的是tomcat+apache(AJP端口),不是程序的问题,因为程序已经不在了,怎么还能占用线程那,所以现在我在测试是不是连接池的问题,我用的是C3PO,换成了DBCP数据源,还是不行,我在想通过一些服务器的线程管理机制来控制这个问题,至于,JCONSOLE中的堵塞,我也不是太清楚,老外的东西就是这样,搞不清楚,对我们学习很没有好处,其实没有技术含量,就是参数,配置的问题,只有他自己知道,所以还要努力呀,兄弟们
加载更多回复(10)

67,513

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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