gpt4 book ai didi

java - 除了 OOM 之外,还有什么可以在 Linux 上杀死 Java 进程?

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:21:52 26 4
gpt4 key购买 nike

我有两个虚拟服务器来托管我的网络应用程序。它们是相同的,运行 Debian 6 和 1.5GB 内存。我使用全新安装的脚本配置操作系统和 Tomcat,因此我知道它们是相同的。

我的网络应用程序在 Tomcat 中运行,我设置了 850M 堆和 100M 永久大小。我的应用程序经常在其中一台服务器上死机。我的第一直觉是检查 OOM killer ,但日志中没有这方面的证据。

问题:

  • OOM killer 是否可以在不留下适当的日志消息的情况下终止应用程序?
  • [编辑] 如果不是,并且鉴于我没有明显的东西会终止进程,我在哪里可以找到诊断问题的证据?

谢谢

最佳答案

终止 JVM 的原因有很多。它可以根据拥有用户或根用户发送给它的信号终止,也可以根据OOM killer(如您提到的)终止。

在某些情况下,我可以将随机崩溃追溯到坏/有故障的 RAM,这会导致 JVM 中的内存损坏,最终导致进程以 SIGSEGV< 终止。您可以查看是否有 hs_err_pidXXXX.log 文件。如果运行该进程的用户没有在目标目录中写入的权限,则它们可能会丢失。您可以使用 -XX:ErrorFile=/path/to/file.

指定它们的去向

根据个人经验,如果出现零星的、无法追踪的、无法解释的随机崩溃,我通常做的第一件事是运行 memtest86 几个小时。我倾向于在网络中拥有它的 PXE 可启动镜像。

编辑:鉴于您提到的是由另一家公司运营的虚拟专用服务器,您不可能在裸机上运行 memtest86,但也有一个用户空间版本可能值得尝试。

关于java - 除了 OOM 之外,还有什么可以在 Linux 上杀死 Java 进程?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20293222/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com