如何诊断正在悄然消亡的 Java 服务器应用程序?

如何诊断正在悄然消亡的 Java 服务器应用程序?

我们在运行 Centos 7 的 AWS EC2 实例上运行 Java Spring 服务器应用程序集群。我们在它们上面安装了健康监视器,偶尔会发出警报,我们会发现 Java 进程悄悄消失了。我们在任何日志中都找不到任何东西……无论是我们自己的日志还是系统日志。我们在自己的代码周围有一个外部“catch Throwable”,用于记录它捕获的内容,但我们运行 Tomcat,它有许多自己的线程。我们添加了额外的日志记录以尝试捕捉它消失的时刻,但到目前为止,这还没有产生任何信息。

我查看了这个问题:如何找出 Java 进程在 Linux 中毫无痕迹地死亡的原因。我发现那里没有任何帮助。

目前,我们无法将这些流程的启动者纳入解决方案中。这是一个很长的故事。相信我,我们已经尝试过这条路了。

有什么建议吗?我想知道我是否应该将 Java 进程包装在一个外部父进程中,该父进程会仔细监视和记录来自 Java 子进程的所有信号。我想知道是否有我尚未找到的现成解决方案。任何想法都将不胜感激。

相关内容