iteye_8881 2009-04-09 10:51
浏览 285
已采纳

tomcat服务器僵死问题

生产环境系统使用RHEL4 update4 + Tomcat 5.5.25 + JDK6.0u3,8G内存,4CPU。两台机器,白天在线用户1500左右。

在tomcat启动一段时间(平均3天左右),突然僵住,无法接收任何请求。

一开始怀疑资源泄漏,但经检查,内存、CPU、数据库在僵死前一切正常。僵死后,CPU降为0%,网络发送/接收量为0。

使用probe工具观察,得到如下结果:

正常情况下,处于工作状态(Service状态)的线程数仅在20左右(已关闭长连接的情况下)
但在快要崩溃前大约5分钟,连接数暴涨至maxThread,如1000。

观察后发现,在这5分钟内新进的请求,均处于"Service"状态,也就是tomcat connector接受新请求后,不能处理,直至请求越来越多,几分钟后最终堆积达到maxThread,Tomcat彻底僵死。

在僵死时,受影响的仅有一个应用,webapp目录下的其它应用不受影响,可以从其它端口正常访问。

已换过jdk版本,tomcat版本等,设置更大的连接数(事实上只是延长了请求堆积的时间),没有效果。出错时,没有错误日志信息。

有哪位能猜测到底发生了什么?以前是好的,但经过几次代码上的更新之后就慢慢出现了这个问题,我们仔细检查了源代码,表面上找不到任何问题。
[b]问题补充:[/b]
已将当机时的用户session信息已全部保存下来看了,没有发现问题。

2台tomcat,一台死掉的时候,另一台工作得好好的。

  • 写回答

2条回答 默认 最新

  • do77 2009-04-10 00:16
    关注

    可以使用kill -QUIT pid的方式查看jvm的线程信息,也许可以帮助你解决问题。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥15 matlab实现基于主成分变换的图像融合。
  • ¥15 对于相关问题的求解与代码
  • ¥15 ubuntu子系统密码忘记
  • ¥15 信号傅里叶变换在matlab上遇到的小问题请求帮助
  • ¥15 保护模式-系统加载-段寄存器
  • ¥15 电脑桌面设定一个区域禁止鼠标操作
  • ¥15 求NPF226060磁芯的详细资料
  • ¥15 使用R语言marginaleffects包进行边际效应图绘制
  • ¥20 usb设备兼容性问题
  • ¥15 错误(10048): “调用exui内部功能”库命令的参数“参数4”不能接受空数据。怎么解决啊