如何找到Linux中Java应用程序死亡的根本原因

时间:2018-09-19 01:07:13

标签: java linux kill

我在Linux中运行的Java应用程序总是每两个小时消失一次,如何找到根本原因。 首先,我认为它已被oom杀死,因此我将/ proc // oom_adj t0 -17更改为无效。 第二个I用户strace -p PID,退出代码为1。

2 个答案:

答案 0 :(得分:0)

您可以在应用程序上配置JMX并附加JConsole或JVisualVM并监视堆。您还可以在JVM上启用垃圾收集并将其写入文件gc.log。您可以查看日志以查看进程中的内存正在发生什么。

答案 1 :(得分:0)

您可能遇到用户限制或ulimit的问题,最近我在Linux中的Java上无法读取非常大的文件时遇到了问题,发生了同样的问题,我的应用程序消失了,没有任何解释。

对于我来说,解决方案是通过将用户添加到文件中来修改/etc/security/limits.conf文件,如下所示:

<user> soft nofile 4096
<user> hard nofile 8192

如果您的解决方案可能有所不同,建议您看看here或看看man page,您可以得到更好的解释。