我在linux上运行的java应用程序每两个小时就会消失一次,我怎样才能找到根本原因。首先我认为它被oom杀死,所以我更改/ proc // oom_adj t0 -17,不起作用。第二个I用户strace -p PID,退出代码为1。
您可以在应用程序上配置JMX并附加JConsole或JVisualVM并监视堆。您还可以在JVM上启用垃圾收集,并将其写入文件gc.log。您可以查看日志以查看进程内存的情况。
您可能遇到用户限制或ulimit的问题,最近我在linux中读取java非常大的文件有问题,同样的问题发生了,我的应用程序消失而没有解释。
ulimit
对于我的情况,解决方案是通过将我的用户添加到文件来修改/etc/security/limits.conf文件,如下所示:
<user> soft nofile 4096 <user> hard nofile 8192
在你的情况下,解决方案可能会有所不同,我建议你看看here或看到man page,你可以有更好的解释。