雄猫突然死亡
试图在64位Linux(CentOS)机器上诊断一些奇怪的Tomcat()和/或JVM错误。7.0.21
我正在对我们的服务器应用程序进行负载测试,并尝试用100K条消息击中它。启动并始终关注堆。一切看起来都很棒*(见下文),直到我得到大约93K处理过的消息,然后Tomcat就死了。在Tomcat的PID号码上运行了一个,以确认它已经死了。jvisualvm
ps
在这次崩溃之前:
- 负载测试已经运行了大约90分钟;应该在那之后不久就完成了,因为我们在93K / 100K)
- CPU保持在45%左右
- 使用过的堆大约是 2GB(在 GC 之后加上或减去一堆),但堆大小从 4GB 增长到大约 30 分钟后
MAX_HEAP
- 类装载/卸载正常循环
- 线程转储正常
服务器代码中没有任何地方是任何调用 - 所以我们可以直接排除这一点(是的,我已经仔细检查过了!!!)。System.exit()
我不确定这是Tomcat崩溃还是JVM(我怎么知道?)。即使我知道,我似乎也找不到任何迹象表明出了什么问题:
- 服务器应用程序的所有日志都停止,没有任何错误消息(即使我们将日志记录普遍设置为DEBUG及更高版本)
- 雄猫和尊重文件只是停止没有任何信息
catalina.out
localhost_access_*
我听说可以让Tomcat在这样做时记录一个核心转储,但不确定如何做到这一点,在线示例也没有多大帮助。
SO将如何诊断这个问题?我应该采取什么步骤来开始排除所有可能的因素?
提前致谢!