一尘不染

Tomcat突然崩溃

tomcat

尝试7.0.21在64位linux(CentOS)计算机上诊断一些奇怪的Tomcat()和/或JVM错误。

我正在对我们的服务器应用程序进行负载测试,并尝试使用100K消息进行匹配。发射jvisualvm并一直盯着堆。一切看起来都很好*(请参阅下文),直到我收到大约93K处理过的消息,然后Tomcat死了。ps对Tomcat的PID号运行一个,以确认它已死。

直到此崩溃:

  • 负载测试已经运行了大约90分钟;此后不久便应该完成了,因为我们的时间是93K / 100K)
  • CPU保持强劲约45%
  • 用过的堆大约为2GB(GC之后加减一堆),但是堆大小从4GB增加到MAX_HEAP大约30分钟后
  • 上课/下课正常
  • 线程转储是正常的

服务器代码中没有任何调用System.exit()-因此我们可以立即排除该错误(是的,我已经仔细检查了!!!)。

我不确定这是Tomcat崩溃还是JVM( 我怎么知道? )。即使我确实知道,我似乎也找不到任何出问题的迹象:

  • 所有服务器应用程序的日志都将停止,而不会出现任何错误消息(即使我们将日志记录普遍设置为DEBUG或更高)
  • Tomcat catalina.out和尊重localhost_access_*文件只是停止而没有任何信息

我听说有可能让Tomcat记录一次coredump,但不确定如何做到这一点,在线示例并没有太大帮助。

那么如何诊断呢?我应该采取什么步骤开始排除所有可能的因素?

提前致谢!


阅读 376

收藏
2020-06-16

共1个答案

一尘不染

抱歉,我必须从@erickson中删除绿色的支票。我终于弄清楚是什么杀死了Tomcat。

似乎没有使用VisualVM正确配置探查器插件,并且试图在Tomcat进程上运行探查器将其杀死。

现在调查原因,并在我进一步了解后会更新此答案。

2020-06-16