-
resin线程跑满 帮忙分析一下线程死锁的问题10
最近resin运行一段时间后就会特别慢,甚至假死,通过jstack打印后发现resin中的线程有1000多个,http请求只有一个是RUNNABLE 其它的都是WAIT 大家帮忙分析一下啊,线程信息在附件中,谢谢!
问题补充:不知道大家能不能看到附件 下面是部分线程信息
"http--9005-42150$342045458" daemon prio=10 tid=0x000000005c836800 nid=0x5664 waiting for monitor entry [0x0000000046389000]
java.lang.Thread.State: BLOCKED (on object monitor)
at com.caucho.jsp.PageManager.getPage(PageManager.java:219)
- waiting to lock <0x00000007a2ee94a8> (a com.caucho.jsp.PageManager$Entry)
at com.caucho.jsp.PageManager.getPage(PageManager.java:178)
at com.caucho.jsp.PageManager.getPage(PageManager.java:161)
at com.caucho.jsp.QServlet.getSubPage(QServlet.java:301)
at com.caucho.jsp.QServlet.getPage(QServlet.java:210)
at com.caucho.server.dispatch.PageFilterChain.compilePage(PageFilterChain.java:238)
at com.caucho.server.dispatch.PageFilterChain.doFilter(PageFilterChain.java:145)
at com.sohu.mobile.filter.CommonFilter.doFilter(CommonFilter.java:65)
at com.caucho.server.dispatch.FilterFilterChain.doFilter(FilterFilterChain.java:87)
at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:88)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76)
at com.caucho.server.dispatch.FilterFilterChain.doFilter(FilterFilterChain.java:87)
at com.caucho.server.webapp.WebAppFilterChain.doFilter(WebAppFilterChain.java:187)
at com.caucho.server.dispatch.ServletInvocation.service(ServletInvocation.java:265)
at com.caucho.server.http.HttpRequest.handleRequest(HttpRequest.java:273)
at com.caucho.server.port.TcpConnection.run(TcpConnection.java:682)
- locked <0x00000007c00a2530> (a java.lang.Object)
at com.caucho.util.ThreadPool$Item.runTasks(ThreadPool.java:730)
at com.caucho.util.ThreadPool$Item.run(ThreadPool.java:649)
at java.lang.Thread.run(Thread.java:662)
Locked ownable synchronizers:
- None
"http--9005-42152$2091773234" daemon prio=10 tid=0x000000005c835000 nid=0x5663 waiting for monitor entry [0x0000000046368000]
java.lang.Thread.State: BLOCKED (on object monitor)
at com.caucho.jsp.PageManager.getPage(PageManager.java:219)
- waiting to lock <0x00000007a2ee9368> (a com.caucho.jsp.PageManager$Entry)
at com.caucho.jsp.PageManager.getPage(PageManager.java:178)
at com.caucho.jsp.PageManager.getPage(PageManager.java:161)
at com.caucho.jsp.QServlet.getSubPage(QServlet.java:301)
at com.caucho.jsp.QServlet.getPage(QServlet.java:210)
at com.caucho.server.dispatch.PageFilterChain.compilePage(PageFilterChain.java:238)
at com.caucho.server.dispatch.PageFilterChain.doFilter(PageFilterChain.java:145)
at com.caucho.server.webapp.DispatchFilterChain.doFilter(DispatchFilterChain.java:97)
at com.caucho.server.dispatch.ServletInvocation.service(ServletInvocation.java:265)
at com.caucho.server.webapp.RequestDispatcherImpl.forward(RequestDispatcherImpl.java:293)
at com.caucho.server.webapp.RequestDispatcherImpl.error(RequestDispatcherImpl.java:118)
at com.caucho.server.webapp.ErrorPageManager.sendServletError(ErrorPageManager.java:367)
at com.caucho.server.webapp.ErrorPageManager.handleErrorStatus(ErrorPageManager.java:618)
at com.caucho.server.webapp.ErrorPageManager.handleErrorStatus(ErrorPageManager.java:586)
at com.caucho.server.webapp.ErrorPageManager.sendError(ErrorPageManager.java:495)
at com.caucho.server.connection.AbstractHttpResponse.sendError(AbstractHttpResponse.java:523)
at com.caucho.server.connection.AbstractHttpResponse.sendError(AbstractHttpResponse.java:477)
at com.caucho.server.dispatch.PageFilterChain.doFilter(PageFilterChain.java:185)
at com.sohu.mobile.filter.CommonFilter.doFilter(CommonFilter.java:65)
at com.caucho.server.dispatch.FilterFilterChain.doFilter(FilterFilterChain.java:87)
at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:88)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76)
at com.caucho.server.dispatch.FilterFilterChain.doFilter(FilterFilterChain.java:87)
at com.caucho.server.webapp.WebAppFilterChain.doFilter(WebAppFilterChain.java:187)
at com.caucho.server.dispatch.ServletInvocation.service(ServletInvocation.java:265)
at com.caucho.server.http.HttpRequest.handleRequest(HttpRequest.java:273)
at com.caucho.server.port.TcpConnection.run(TcpConnection.java:682)
- locked <0x00000007c017c4b0> (a java.lang.Object)
at com.caucho.util.ThreadPool$Item.runTasks(ThreadPool.java:730)
at com.caucho.util.ThreadPool$Item.run(ThreadPool.java:649)
at java.lang.Thread.run(Thread.java:662)
Locked ownable synchronizers:
- None
"http--9005-41806$367002811" daemon prio=10 tid=0x000000005c833800 nid=0x5662 runnable [0x0000000046346000]
java.lang.Thread.State: RUNNABLE
at com.caucho.loader.EnvironmentClassLoader.addListener(EnvironmentClassLoader.java:260)
- locked <0x00000007a1a3dca0> (a java.util.ArrayList)
at com.caucho.loader.EnvironmentClassLoader.initListeners(EnvironmentClassLoader.java:286)
at com.caucho.loader.EnvironmentClassLoader.<init>(EnvironmentClassLoader.java:137)
at com.caucho.loader.EnvironmentClassLoader.<init>(EnvironmentClassLoader.java:106)
at com.caucho.jsp.JspCompiler.<init>(JspCompiler.java:97)
at com.caucho.jsp.JspManager.compile(JspManager.java:209)
at com.caucho.jsp.JspManager.createPage(JspManager.java:171)
at com.caucho.jsp.JspManager.createPage(JspManager.java:150)
at com.caucho.jsp.PageManager.getPage(PageManager.java:248)
- locked <0x00000007a2ee94c8> (a com.caucho.jsp.PageManager$Entry)
at com.caucho.jsp.PageManager.getPage(PageManager.java:178)
at com.caucho.jsp.PageManager.getPage(PageManager.java:161)
at com.caucho.jsp.QServlet.getSubPage(QServlet.java:301)
at com.caucho.jsp.QServlet.getPage(QServlet.java:210)
at com.caucho.server.dispatch.PageFilterChain.compilePage(PageFilterChain.java:238)
at com.caucho.server.dispatch.PageFilterChain.doFilter(PageFilterChain.java:145)
at com.caucho.server.webapp.DispatchFilterChain.doFilter(DispatchFilterChain.java:97)
at com.caucho.server.dispatch.ServletInvocation.service(ServletInvocation.java:265)
at com.caucho.server.webapp.RequestDispatcherImpl.forward(RequestDispatcherImpl.java:293)
at com.caucho.server.webapp.RequestDispatcherImpl.error(RequestDispatcherImpl.java:118)
at com.caucho.server.webapp.ErrorPageManager.handleErrorStatus(ErrorPageManager.java:614)
at com.caucho.server.webapp.ErrorPageManager.handleErrorStatus(ErrorPageManager.java:586)
at com.caucho.server.webapp.ErrorPageManager.sendError(ErrorPageManager.java:495)
at com.caucho.server.connection.AbstractHttpResponse.sendError(AbstractHttpResponse.java:523)
at com.caucho.server.connection.AbstractHttpResponse.sendError(AbstractHttpResponse.java:477)
at com.caucho.server.dispatch.PageFilterChain.doFilter(PageFilterChain.java:185)
at com.sohu.mobile.filter.CommonFilter.doFilter(CommonFilter.java:65)
at com.caucho.server.dispatch.FilterFilterChain.doFilter(FilterFilterChain.java:87)
at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:88)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76)
at com.caucho.server.dispatch.FilterFilterChain.doFilter(FilterFilterChain.java:87)
at com.caucho.server.webapp.WebAppFilterChain.doFilter(WebAppFilterChain.java:187)
at com.caucho.server.dispatch.ServletInvocation.service(ServletInvocation.java:265)
at com.caucho.server.http.HttpRequest.handleRequest(HttpRequest.java:273)
at com.caucho.server.port.TcpConnection.run(TcpConnection.java:682)
- locked <0x00000007bdf5ba68> (a java.lang.Object)
at com.caucho.util.ThreadPool$Item.runTasks(ThreadPool.java:730)
at com.caucho.util.ThreadPool$Item.run(ThreadPool.java:649)
at java.lang.Thread.run(Thread.java:662)
Locked ownable synchronizers:
- None
"http--9005-40683$1525065659" daemon prio=10 tid=0x000000005c832000 nid=0x5661 waiting for monitor entry [0x0000000046305000]
java.lang.Thread.State: BLOCKED (on object monitor)
at com.caucho.jsp.PageManager.getPage(PageManager.java:219)
- waiting to lock <0x00000007a2ee94c8> (a com.caucho.jsp.PageManager$Entry)
at com.caucho.jsp.PageManager.getPage(PageManager.java:178)
at com.caucho.jsp.PageManager.getPage(PageManager.java:161)
at com.caucho.jsp.QServlet.getSubPage(QServlet.java:301)
at com.caucho.jsp.QServlet.getPage(QServlet.java:210)
at com.caucho.server.dispatch.PageFilterChain.compilePage(PageFilterChain.java:238)
at com.caucho.server.dispatch.PageFilterChain.doFilter(PageFilterChain.java:145)
at com.caucho.server.webapp.DispatchFilterChain.doFilter(DispatchFilterChain.java:97)
at com.caucho.server.dispatch.ServletInvocation.service(ServletInvocation.java:265)
at com.caucho.server.webapp.RequestDispatcherImpl.forward(RequestDispatcherImpl.java:293)
at com.caucho.server.webapp.RequestDispatcherImpl.error(RequestDispatcherImpl.java:118)
at com.caucho.server.webapp.ErrorPageManager.handleErrorStatus(ErrorPageManager.java:614)
at com.caucho.server.webapp.ErrorPageManager.handleErrorStatus(ErrorPageManager.java:586)
at com.caucho.server.webapp.ErrorPageManager.sendError(ErrorPageManager.java:495)
at com.caucho.server.connection.AbstractHttpResponse.sendError(AbstractHttpResponse.java:523)
at com.caucho.server.connection.AbstractHttpResponse.sendError(AbstractHttpResponse.java:477)
at com.caucho.server.dispatch.PageFilterChain.doFilter(PageFilterChain.java:185)
at com.sohu.mobile.filter.CommonFilter.doFilter(CommonFilter.java:65)
at com.caucho.server.dispatch.FilterFilterChain.doFilter(FilterFilterChain.java:87)
at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:88)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76)
at com.caucho.server.dispatch.FilterFilterChain.doFilter(FilterFilterChain.java:87)
at com.caucho.server.webapp.WebAppFilterChain.doFilter(WebAppFilterChain.java:187)
at com.caucho.server.dispatch.ServletInvocation.service(ServletInvocation.java:265)
at com.caucho.server.http.HttpRequest.handleRequest(HttpRequest.java:273)
at com.caucho.server.port.TcpConnection.run(TcpConnection.java:682)
- locked <0x00000007b9713be0> (a java.lang.Object)
at com.caucho.util.ThreadPool$Item.runTasks(ThreadPool.java:730)
at com.caucho.util.ThreadPool$Item.run(ThreadPool.java:649)
at java.lang.Thread.run(Thread.java:662)
Locked ownable synchronizers:
- None
问题补充:RUNABLE的线程locked <0x00000007a2ee94c8> (a com.caucho.jsp.PageManager$Entry)
有200多个WAIT的线程都在等待这个对象
"http--9005-40683$1525065659" daemon prio=10 tid=0x000000005c832000 nid=0x5661 waiting for monitor entry [0x0000000046305000]
java.lang.Thread.State: BLOCKED (on object monitor)
at com.caucho.jsp.PageManager.getPage(PageManager.java:219)
- waiting to lock <0x00000007a2ee94c8> (a com.caucho.jsp.PageManager$Entry)
at com.caucho.jsp.PageManager.getPage(PageManager.java:178)
at com.caucho.jsp.PageManager.getPage(PageManager.java:161)
at com.caucho.jsp.QServlet.getSubPage(QServlet.java:301)
at com.caucho.jsp.QServlet.getPage(QServlet.java:210)
at com.caucho.server.dispatch.PageFilterChain.compilePage(PageFilterChain.java:238)
at com.caucho.server.dispatch.PageFilterChain.doFilter(PageFilterChain.java:145)
at com.caucho.server.webapp.DispatchFilterChain.doFilter(DispatchFilterChain.java:97)
at com.caucho.server.dispatch.ServletInvocation.service(ServletInvocation.java:265)
at com.caucho.server.webapp.RequestDispatcherImpl.forward(RequestDispatcherImpl.java:293)
at com.caucho.server.webapp.RequestDispatcherImpl.error(RequestDispatcherImpl.java:118)
at com.caucho.server.webapp.ErrorPageManager.handleErrorStatus(ErrorPageManager.java:614)
at com.caucho.server.webapp.ErrorPageManager.handleErrorStatus(ErrorPageManager.java:586)
at com.caucho.server.webapp.ErrorPageManager.sendError(ErrorPageManager.java:495)
at com.caucho.server.connection.AbstractHttpResponse.sendError(AbstractHttpResponse.java:523)
at com.caucho.server.connection.AbstractHttpResponse.sendError(AbstractHttpResponse.java:477)
at com.caucho.server.dispatch.PageFilterChain.doFilter(PageFilterChain.java:185)
at com.sohu.mobile.filter.CommonFilter.doFilter(CommonFilter.java:65)
at com.caucho.server.dispatch.FilterFilterChain.doFilter(FilterFilterChain.java:87)
at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:88)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76)
at com.caucho.server.dispatch.FilterFilterChain.doFilter(FilterFilterChain.java:87)
at com.caucho.server.webapp.WebAppFilterChain.doFilter(WebAppFilterChain.java:187)
at com.caucho.server.dispatch.ServletInvocation.service(ServletInvocation.java:265)
at com.caucho.server.http.HttpRequest.handleRequest(HttpRequest.java:273)
at com.caucho.server.port.TcpConnection.run(TcpConnection.java:682)
- locked <0x00000007b9713be0> (a java.lang.Object)
at com.caucho.util.ThreadPool$Item.runTasks(ThreadPool.java:730)
at com.caucho.util.ThreadPool$Item.run(ThreadPool.java:649)
at java.lang.Thread.run(Thread.java:662)
Locked ownable synchronizers:
- None
问题补充:大部分线程都死在waiting to lock <0x00000007a2ee94c8> (a com.caucho.jsp.PageManager$Entry)这个地方,这个地方被唯一的一个RUNNABLE的线程给占有了,而且 PageManager是WEB容器resin本身的一个类2014年5月19日 11:45
3个答案 按时间排序 按投票排序
-
引用
"http--9005-40683$1525065659" daemon prio=10 tid=0x000000005c832000 nid=0x5661 waiting for monitor entry [0x0000000046305000]
java.lang.Thread.State: BLOCKED (on object monitor)
at com.caucho.jsp.PageManager.getPage(PageManager.java:219)
- waiting to lock <0x00000007a2ee94c8> (a com.caucho.jsp.PageManager$Entry)
at com.caucho.jsp.PageManager.getPage(PageManager.java:178)
通过上面这段看,waiting for monitor entry可能是你代码中使用了synchronized,这样如果你的PageManager方法如果没有执行完成时,其它的方法要获取同一个对象上的锁只能等待。
如果一般没有必要的话,可以把synchronized去掉。如果同为读的逻辑,不需要互斥。2014年5月19日 12:44
-
把你代码的:
com.caucho.jsp.PageManager.getPage(PageManager.java:219)
帖上来看看2014年5月19日 12:08
相关推荐
运维-resin常见问题运维-resin常见问题运维-resin常见问题运维-resin常见问题
resin3 resin3下载 resin-3.0.21下载
resin服务器有3部分,resin1,resin-webapp,resin-lib,由于大小限制分开传
Resin是CAUCHO公司的产品,是一个非常流行的application server,对servlet和JSP提供了良好的支持,性能也比较优良,resin自身采用JAVA语言开发。
Resin是CAUCHO公司的产品,是一个非常流行的支持servlets和jsp的引擎,速度非常快。Resin本身包含了一个支持HTTP/1.1的WEB服务器。它不仅可以显示动态内容,而且它显示静态内容的能力也非常强,速度直逼APACHESERVER...
当然,您也可以去 http://www.caucho.com 官方站点了解详细内容并下载resin1.1.3或者1.1.2并且看一下resin的License 最新的resin版本为Resin 3.1 可从 http://www.caucho.com/download/ 上下载 有win 和linux 两个...
resin服务器有3部分,resin1,resin-webapp,resin-lib,由于大小限制分开传
非常有用的resin配置,Resin常见问题及解决方法
Mastering Resin英文版
resin3.1.5
Resin是CAUCHO公司的产品,是一个非常流行的支持servlets和jsp的引擎,速度非常快。Resin本身包含了一个支持HTTP/1.1的WEB服务器。虽然它可以显示动态内容,但是它显示静态内容的能力也非常强,速度直逼APACHESERVER...
resin应用服务器resin-3.2.0
resin-2.1.9.zip resin-2.1.9.zip resin-2.1.9.zip
resin应用部署详细步骤,帮助你快速学会resin
resin服务器
resin2.1.8
resin服务器配置指南,实现resin服务均衡。前台服务均衡
resin-pro-4.0.65下载 resin下载
resin-3.1.9源代码 可以查看resin是怎么具体实现一些j2EE接口的。
从日志分析开始1启动日志1总结分析:8运行时调试日志8总结分析:9网络模型分析11隐喻: 11模型分析12源码剖析:14线程池模型19原理分析:20源码剖析20