Java进程在没有日志的情况下被杀死

问题描述 投票:2回答:1

我在CentOs Machine中运行了一个运行时间长的Java进程。我既有信息也有错误日志设置正确。该过程运行了更长的时间(超过18小时)并消失了突然间。没有错误/异常(OutOfMemoryError / OutOfDiskSpace错误)的痕迹。如何弄清楚到底发生了什么,为什么以及如何杀死了这个过程?

These are the OS details.
CentOS release 5.11 (Final)
Kernel \r on an \m

是否有任何标准的系统日志或命令可以找出?该作业正在Tomcat中的servlet中运行。 Tomcat也正在神秘地关闭。

java linux tomcat centos5
1个回答
2
投票

您的进程很可能被杀死,因为系统内存不足。当它发生时,它首先尝试杀死短期运行的进程,而不是长期运行的进程。 OOM Killer不太可能记录在您的应用程序日志中。

检查dmesg并尝试找到有关杀死<java_pid>的信息。

这是在Linux https://www.kernel.org/doc/gorman/html/understand/understand016.html#toc21中确定的要杀死的任务的“严重程度”:

badness_for_task = total_vm_for_task / (sqrt(cpu_time_in_seconds) *
sqrt(sqrt(cpu_time_in_minutes)))

内核逐步完成所有正在运行的任务。

© www.soinside.com 2019 - 2024. All rights reserved.