gpt4 book ai didi

java - tomcat进程突然崩溃

转载 作者:IT王子 更新时间:2023-10-29 00:45:19 27 4
gpt4 key购买 nike

尝试在 64 位 linux 机器上诊断一些奇怪的 Tomcat 6 和/或 JVM 错误:

OS VERSION : RED HAT ENTERPRISE LINUX SERVER RELEASE 6.3 (SANTIAGO)
SERVER MODEL : VMWARE VIRTUAL PLATFORM ()

我正在虚拟机上运行一些应用程序测试,遇到了一个奇怪的问题。该问题发生在恰好有 2 个进程正在运行的某些 VM 上:Tomcat 应用程序服务器进程(java 进程)和一个监视器进程,在一个随机点,在随机执行几个小时后,可以在 catalina.out(服务器日志) 失败的虚拟机(问题并不总是发生在同一台机器上):

org.apache.coyote.http11.Http11Protocol pause
INFO: Pausing Coyote HTTP/1.1 on http-50100
INFO: Stopping service Catalina
org.apache.coyote.http11.Http11Protocol destroy
INFO: Stopping Coyote HTTP/1.1 on http-8080

此时 Tomcat 进程关闭,执行失败。在内存或 CPU 使用上看不到任何选择。/var/logs 下看不到系统消息。

  1. 在第一阶段,我们怀疑外部信号正在终止我们的 Tomcat 进程,我们尝试为进程的 JVM 参数使用 -Xrs 标志,但问题仍然存在。

    java 标志 (-xrs ) 应该阻止 Java 运行时环境处理异常信号,如 SIGSEGVSIGABRT 无济于事

    在添加 xrs 标志之前,我们看到了 INFO: Pausing Coyote HTTP/1.1 on http-50100 由于输出信号而发生的错误

    添加 `xrs 标志后,kettle/tomcat 的行为方式相同,并且在日志文件中没有任何错误。

  2. 在相关进程上运行 starce 命令会得到以下输出:

    进程 12917 附加 - 中断退出futex(0x7f6b9e8ab9d0,FUTEX_WAIT,12918,NULLPANIC:附加的 pid 12917 以 143 退出

    我们不能运行 starce -f 来包含所有线程,因为它会导致我们的应用程序卡住。 但是,使用 kill 命令杀死子进程的行为类似——我们看到父 JVM 以错误代码 143 退出,我们还看到发送到子进程的信号。

  3. 我们也在运行 java -XX:+HeapDumpOnOutOfMemoryError optind 为由于内存不足错误而导致的 jvm 崩溃创建堆转储,但由于以下原因没有创建核心转储或堆转储迷恋。

有什么想法吗?

最佳答案

是否有可能,在崩溃之前,存在某种内存耗尽,以至于 java 进程可能被 OOM 杀死。另外,我找到了一个链接 http://bugs.centos.org/view.php?id=4059描述了类似的问题。

关于java - tomcat进程突然崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15875030/

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