0 0

tomcat服务器僵死问题20

生产环境系统使用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版本等,设置更大的连接数(事实上只是延长了请求堆积的时间),没有效果。出错时,没有错误日志信息。

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

2台tomcat,一台死掉的时候,另一台工作得好好的。
2009年4月09日 10:51

2个答案 按时间排序 按投票排序

0 0

采纳的答案

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

2009年4月10日 00:16
0 0

我建议你记录更详细的日志,比如记录请求的IP地址、agent信息,可能是某个搜索引擎短时间发起大量请求?或者有人攻击你的网站?
还可记录每个线程(用filter实现)接受请求和完成请求的时间,用以判断是哪些线程开始长时间未完成。

2009年4月10日 12:21

相关推荐

    Linux僵死进程的产生与避免.pdf

    Linux僵死进程的产生与避免 Linux 操作系统中,僵死进程(Zombie Process)是一种特殊的进程状态,它是指一个进程已经终止,但是其父进程没有通过wait或waitpid函数来回收它的状态信息,而使得进程所占用的资源...

    LINUX查看和处理僵死进程

    "LINUX查看和处理僵死进程" 在LINUX系统中,僵死进程(Zombie Process)是一个非常重要的概念。...僵死进程是LINUX系统中一个非常重要的问题,需要我们认真对待。如果我们不能正确地处理僵死进程,将会引发系统问题。

    linux 僵死进程

    linux 查找僵死进程,重启服务,有利于知道哪些服务已经死掉进程还在

    Linux课程设计报告

    这种方式可以提高系统的整体效率,避免 Tomcat 在高负载下陷入“僵死”状态,确保服务的稳定性。 整合 Apache 和 Tomcat 有多种方法,如使用 mod_jk 或 mod_proxy 模块,这些模块允许 Apache 将动态请求转发给 ...

    oracle杀僵死进程

    在Oracle数据库管理过程中,经常会遇到僵死进程的问题,这些问题可能会导致数据库性能下降甚至无法正常运行。本文将详细介绍如何通过SQL查询定位僵死进程,并提供具体的解决方案,帮助解决如无法停库等异常问题。 #...

    linux 杀死僵死进程并重启

    linux 下的 bash shell脚本,用于杀死僵死的进程,并重新启动.

    行业分类-设备装置-一种僵死低效进程的识别方法和识别设备.zip

    在IT行业中,操作系统管理和优化是至关重要的任务,尤其是在大型企业或服务器环境中。本文将深入探讨标题和描述中提及的主题——“一种僵死低效进程的识别方法和识别设备”。我们将详细解析这一问题,并讨论如何有效...

    c#做的简单客户端与服务器之间的数据传输(2)

    例如,客户端可能需要处理服务器未响应或连接超时的情况,而服务器则需要处理并发连接过多或资源耗尽的问题。 3. **使用异步编程:** - 在C#中,为了提高性能和用户体验,通常会采用异步编程来处理网络通信。`...

    SCRATCH3,小鸟大战僵死,创新游戏模式!

    《SCRATCH3:小鸟大战僵死——创新游戏模式解析》 Scratch3,作为麻省理工学院(MIT)媒体实验室的“终身幼儿园团队”开发的一款免费编程语言和视觉化编程工具,深受全球青少年喜爱,尤其适合编程初学者。本篇我们将...

    多进程服务器端1

    本文将详细介绍一种多进程服务器端的实现,并涉及相关的进程管理知识,包括如何创建进程、处理僵死进程以及利用wait函数回收子进程。 首先,多进程服务器是一种常见的并发服务器实现模型,通过创建多个独立的进程来...

    linux高性能服务器

    2. 超时管理:在I/O操作或网络连接中设置超时,避免程序因长时间等待而僵死。 3. 性能监控:通过定时收集系统资源使用情况,如CPU、内存、磁盘I/O,分析系统瓶颈。 4. 调度策略:如时间片轮转调度,合理分配CPU...

    Vs2017 C++源码 植物大战僵死辅助收花和金币

    "Vs2017 C++源码 植物大战僵死辅助收花和金币" 这个标题表明这是一个基于C++语言的项目,利用Visual Studio 2017(简称Vs2017)开发环境进行编程。项目的主要功能是为热门游戏《植物大战僵尸》(PVZ)提供一个辅助...

    C#编写的《植物大战僵死》辅助工具实例

    《植物大战僵死》是一款广受欢迎的塔防游戏,而C#是一种强大的编程语言,尤其在游戏开发领域有着广泛的应用。本实例中的辅助工具是利用C#编写的,旨在帮助玩家更轻松地进行游戏。下面将详细介绍这个C#辅助工具的知识...

    添加子进程,job进程管理,告别僵死进程

    JobObject来管理子进程,确保主进程关闭时子进程自动结束,避免异常退出时留下僵尸进程

    VC++ 遍历FTP文件目录

    但是,理解底层的Socket编程和FTP协议原理对于解决特定问题或优化性能仍然很有价值。 文件操作SDK,如Microsoft的Windows API,可以帮助我们在本地处理从FTP服务器下载的文件。例如,使用`CreateFile`、`ReadFile`...

    ORACLE双机热备解决方案(镜像—共享)

    #### 需求背景与问题阐述 在现代企业环境中,数据库系统的稳定性和连续性对于业务的正常运行至关重要。尤其是对于那些依赖于ORACLE数据库的关键业务系统,任何一次服务器宕机或应用停机都可能引发数据丢失,进而...

    Opera浏览器下载 12.00 Build 1116 Snapshot

    修复输入网址时僵死的问题 (Mac 下与 Wakoopa 冲突问题) 修复 widget 升级问题 修复拖曳按钮到标签栏时崩溃的问题 修复新到的邮件、新闻、订阅未索引的问题 修复一些快速拨号问题 修复一些 widget 问题 修复 ...

    JDBC连接Oracle数据库常见问题及解决方法

    * 可能是服务器的监听停掉了,是数据库的问题,与应用无关;应该先检查一下 Oracle 是否正常,用 sql*plus 连接一下数据库,看能否正常连接。 5. Weblogic 中使用 Oracle 连接池及 Oracle 备份的注意事项 在使用 ...

Global site tag (gtag.js) - Google Analytics