试图在64位Linux(CentOS)机器上诊断一些奇怪的Tomcat(7.0.21
)和/或JVM错误。Tomcat突然死亡
我正在加载测试我们的服务器应用程序,并尝试用100K消息打它。推出jvisualvm
,并一直关注整个堆。一切都看起来很棒*(见下文),直到我得到约93K处理的消息,然后Tomcat刚刚死亡。在Tomcat的PID号码上运行ps
以确认它已经死机。
直到这个崩溃:
- 负载测试已经运行了约90分钟;应该已经完成了,此后不久,因为我们在93K/100K)
- CPU抱着强烈%左右,45
- 使用的堆约为2GB(加或减一帮地方选区后),但堆大小从4GB约后成长为
MAX_HEAP
30分钟 - 类加载/卸载循环为正常
- 线程转储在服务器代码均正常
无处是System.exit()
任何电话 - 因此我们可以排除对出(是的,我已经双-checked !!!)。
我不确定这是Tomcat崩溃还是JVM(我如何知道?)。即使我知道,我似乎无法找到什么地方出了错迹象,包括:
- 所有的服务器应用程序的日志只是停止没有任何错误消息(尽管我们在登录普遍设置为DEBUG和更高)
- Tomcat的
catalina.out
和尊重localhost_access_*
文件只是停止没有任何信息
我听说可能有Tomcat log中一个核心转储当它但不知道如何做到这一点,网上的例子不是活得帮助很大。
怎么去诊断呢?我应该采取哪些步骤来排除所有可能的因素?
在此先感谢!
是薛定谔的tomcat吗? – erickson 2012-02-03 17:09:44
您是否检查更多日志? http://stackoverflow.com/questions/1575730/debugging-tomcat-crash – 2012-02-03 17:12:41
仅供参考在我的经验,你可以告诉如果tomcat被OOM Killer杀死,因为'Killed'这个词将出现在接近catalina.out末尾的地方。 – Tom 2013-09-12 16:34:31