apache2 tomcat5.5 cpu 100% 求救

gyscsdn 2007-03-16 09:50:27
cpu 100% 时 Thread dump log 如下:


Hibernate:
select
tblkpartsc0_.ID as ID13_,
tblkpartsc0_.KPARTS_CTGRY_CODE as KPARTS2_13_,
tblkpartsc0_.KPARTS_CTGRY_NAME as KPARTS3_13_,
tblkpartsc0_.CTGRY_LV as CTGRY4_13_,
tblkpartsc0_.PRNT_CTGRY_CODE as PRNT5_13_,
tblkpartsc0_.IMAGE_FILE1 as IMAGE6_13_,
tblkpartsc0_.KPARTS_CTGRY_SUMMARY as KPARTS7_13_,
tblkpartsc0_.CTGRY_KATABAN_INFO_URL as CTGRY8_13_,
tblkpartsc0_.REG_DATE as REG9_13_,
tblkpartsc0_.UPD_DATE as UPD10_13_,
tblkpartsc0_.DEL_DATE as DEL11_13_,
tblkpartsc0_.UPD_USER as UPD12_13_,
tblkpartsc0_.INDICATION_ORD as INDICATION13_13_,
tblkpartsc0_.KPARTS_PRM_STATUS as KPARTS14_13_
from
TBL_KPARTS_CATEGORY tblkpartsc0_
where
tblkpartsc0_.DEL_DATE=to_date('19000101', 'YYYYMMDD')
and tblkpartsc0_.KPARTS_CTGRY_CODE<>0
order by
tblkpartsc0_.KPARTS_CTGRY_NAME
Full thread dump Java HotSpot(TM) Client VM (1.5.0_08-b03 mixed mode, sharing):

"TP-Processor48" daemon prio=1 tid=0xb20c8258 nid=0x31c1 runnable [0xade7b000..0xade7bf30]
at java.net.PlainSocketImpl.socketClose0(Native Method)
at java.net.PlainSocketImpl.socketPreClose(PlainSocketImpl.java:642)
at java.net.PlainSocketImpl.close(PlainSocketImpl.java:485)
- locked <0x8442e138> (a java.lang.Object)
at java.net.SocksSocketImpl.close(SocksSocketImpl.java:1030)
at java.net.Socket.close(Socket.java:1311)
- locked <0x8442c088> (a java.lang.Object)
- locked <0x8442c070> (a java.net.Socket)
at org.apache.jk.common.ChannelSocket.close(ChannelSocket.java:460)
at org.apache.jk.common.ChannelSocket.processConnection(ChannelSocket.java:706)
at org.apache.jk.common.ChannelSocket$SocketConnection.runIt(ChannelSocket.java:876)
at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684)
at java.lang.Thread.run(Thread.java:595)

"TP-Processor47" daemon prio=1 tid=0xb20d9f00 nid=0x31c0 in Object.wait() [0xadefc000..0xadefcfb0]
at java.lang.Object.wait(Native Method)
- waiting on <0x84427278> (a org.apache.tomcat.util.threads.ThreadPool$ControlRunnable)
at java.lang.Object.wait(Object.java:474)
at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:656)
- locked <0x84427278> (a org.apache.tomcat.util.threads.ThreadPool$ControlRunnable)
at java.lang.Thread.run(Thread.java:595)

"TP-Processor46" daemon prio=1 tid=0xad8f8e40 nid=0x31bf in Object.wait() [0xadf7d000..0xadf7de30]
at java.lang.Object.wait(Native Method)
- waiting on <0x843fd5a0> (a org.apache.tomcat.util.threads.ThreadPool$ControlRunnable)
at java.lang.Object.wait(Object.java:474)
at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:656)
- locked <0x843fd5a0> (a org.apache.tomcat.util.threads.ThreadPool$ControlRunnable)
at java.lang.Thread.run(Thread.java:595)

"TP-Processor45" daemon prio=1 tid=0xb205a9d8 nid=0x31be in Object.wait() [0xadffe000..0xadffeeb0]
at java.lang.Object.wait(Native Method)
- waiting on <0x843fd388> (a org.apache.tomcat.util.threads.ThreadPool$ControlRunnable)
at java.lang.Object.wait(Object.java:474)
at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:656)
- locked <0x843fd388> (a org.apache.tomcat.util.threads.ThreadPool$ControlRunnable)
at java.lang.Thread.run(Thread.java:595)

"TP-Processor44" daemon prio=1 tid=0xb1938268 nid=0x3179 waiting for monitor entry [0xae1fe000..0xae1ff130]
at org.apache.jk.common.HandlerRequest.checkRequest(HandlerRequest.java:356)
- waiting to lock <0x804388c8> (a java.lang.Object)
at org.apache.jk.common.HandlerRequest.decodeRequest(HandlerRequest.java:366)
at org.apache.jk.common.HandlerRequest.invoke(HandlerRequest.java:260)
at org.apache.jk.common.ChannelSocket.invoke(ChannelSocket.java:754)
at org.apache.jk.common.ChannelSocket.processConnection(ChannelSocket.java:684)
at org.apache.jk.common.ChannelSocket$SocketConnection.runIt(ChannelSocket.java:876)
at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684)
at java.lang.Thread.run(Thread.java:595)

...全文
1103 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
gyscsdn 2007-04-06
  • 打赏
  • 举报
回复
可能是session 中放入的东西过多,导致内存过多使用,垃圾回收器需要频繁工作造成的。

linguanfeng02 2007-04-02
  • 打赏
  • 举报
回复
缓冲泄露问题,值得关注!
craig_wolfdon 2007-03-27
  • 打赏
  • 举报
回复
帮顶,
gyscsdn 2007-03-23
  • 打赏
  • 举报
回复
请各位高人帮忙啊!?
yuezu1026 2007-03-19
  • 打赏
  • 举报
回复
你发的dump里面没有一直运行的线程
gyscsdn 2007-03-19
  • 打赏
  • 举报
回复
哪位知道有什么好的工具,能帮助check吗?
古月一刀2005 2007-03-19
  • 打赏
  • 举报
回复
学习!!
gyscsdn 2007-03-19
  • 打赏
  • 举报
回复
网上搜了一下,会不会使这个问题呢?
不知是不是这个原因?请各位帮忙看看。

网上资料如下:

原来做了一个项目,就是采用struts+hibernate+spring,还用了quratz等schema工具;最后服务器老是不稳定,运行一段时间就死掉;查了n多资料,发现了spring中一个绝妙的监听器,建议ss用上,否则如果用了struts,qur还有OpenSessionInViewFilter确实很容易引起系统不稳定;
介绍如下:
spring中的提供了一个名为org.springframework.web.util.IntrospectorCleanupListener的监听器。它主要负责处理由 JavaBeans Introspector的使用而引起的缓冲泄露。spring中对它的描述如下:它是一个在web应用关闭的时候,清除JavaBeans Introspector的监听器.web.xml中注册这个listener.可以保证在web 应用关闭的时候释放与掉这个web 应用相关的class loader 和由它管理的类如果你使用了JavaBeans Introspector来分析应用中的类,Introspector 缓冲中会保留这些类的引用.结果在你的应用关闭的时候,这些类以及web 应用相关的class loader没有被垃圾回收.不幸的是,清除Introspector的唯一方式是刷新整个缓冲.这是因为我们没法判断哪些是属于你的应用的引用.所以删除被缓冲的introspection会导致把这台电脑上的所有应用的introspection都删掉.需要注意的是,spring 托管的bean不需要使用这个监听器.因为spring它自己的introspection所使用的缓冲在分析完一个类之后会被马上从javaBeans Introspector缓冲中清除掉.应用程序中的类从来不直接使用JavaBeans Introspector.所以他们一般不会导致内部查看资源泄露.但是一些类库和框架往往会产生这个问题.例如:Struts 和Quartz.单个的内部查看泄漏会导致整个的web应用的类加载器不能进行垃圾回收.在web应用关闭之后,你会看到此应用的所有静态类资源(例如单例).这个错误当然不是由这个类自 身引起的.

用法很简单,就是在web.xml中加入:
<listener>
<listener-class>org.springframework.web.util.IntrospectorCleanupListener</listener-class>
</listener>
gyscsdn 2007-03-19
  • 打赏
  • 举报
回复
to yuezu1026():

没有一直运行的线程,都是不同的线程
hornbilltofy 2007-03-17
  • 打赏
  • 举报
回复
线程紊乱,你需要仔细检查你的代码,比如有什么死循环,String参数多次加减(用StringBuffer代替)等

67,513

社区成员

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

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