gpt4 book ai didi

Tomcat 启动失败并出现 OOM

转载 作者:行者123 更新时间:2023-11-28 22:47:19 26 4
gpt4 key购买 nike

即使系统中有足够的内存并且正确提供了所有必需的内存设置,Tomcat 仍无法启动并出现 OOM。这种情况并没有持续发生,证明 tomact 配置没有问题。

15-Jan-2019 20:17:31.018 INFO [localhost-startStop-1] org.apache.catalina.startup.HostConfig.deployWAR Deployment of web application archive /opt/tomcat/webapps/XWY.war has finished in 66,068 ms
15-Jan-2019 20:17:31.192 INFO [main] org.apache.coyote.AbstractProtocol.start Starting ProtocolHandler [http-nio-61480]
15-Jan-2019 20:17:31.305 INFO [main] org.apache.coyote.AbstractProtocol.start Starting ProtocolHandler [https-jsse-nio-61443]
15-Jan-2019 20:17:31.362 INFO [main] org.apache.catalina.startup.Catalina.start Server startup in 252145 ms
15-Jan-2019 21:49:18.821 SEVERE [125] org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.run Unexpected death of background thread ContainerBackgroundProcessor[StandardEngine[Catalina]]
java.lang.OutOfMemoryError: Java heap space
at java.util.TreeMap.put(TreeMap.java:577)
at java.util.TreeSet.add(TreeSet.java:255)
at java.util.AbstractCollection.addAll(AbstractCollection.java:344)
at java.util.TreeSet.addAll(TreeSet.java:312)
at org.apache.catalina.webresources.Cache.backgroundProcess(Cache.java:185)
at org.apache.catalina.webresources.StandardRoot.backgroundProcess(StandardRoot.java:601)
at org.apache.catalina.core.StandardContext.backgroundProcess(StandardContext.java:5564)
at org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.processChildren(ContainerBase.java:1373)
at org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.processChildren(ContainerBase.java:1377)
at org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.processChildren(ContainerBase.java:1377)
at org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.run(ContainerBase.java:1345)
at java.lang.Thread.run(Thread.java:748)

Tomcat 版本为 8.5.8。
Java 版本:_JAVA_OPTIONS:-Xms1024m -Xmx3072m openjdk 版本“1.8.0_191”OpenJDK 运行时环境(build 1.8.0_191-b12)OpenJDK 64 位服务器 VM(build 25.191-b12,混合模式)。

最佳答案

从评论中总结了一些技术,以及此处的一些额外步骤。没有人能够就您为什么会出现 OOME 给出最终答案,您需要自己深入研究:

  • 一个可能的打字错误:确保它不是那么简单:您提到了 JAVA_OPTIONS,但它应该是 JAVA_OPTS。嗯,实际上,甚至不是这样:
  • 专门针对 tomcat:使用 CATALINA_OPTS 而不是 JAVA_OPTS。这仅设置用于启动 Tomcat 的内存,并且需要更少的内存来运行(例如)关闭过程。
  • -Xms-Xmx 设置为相同的值:如果您打算提供-Xmx 内存最终,您还不如确保 Java 可以在您启动进程时分配内存。否则,您可能会在周日晚上凌晨 3 点遇到不可用的操作系统内存。
  • 使用 jconsole 或类似工具连接到您正在运行的进程,确定内存模式:它看起来像是不断增加的内存使用量吗?您的应用可能存在内存泄漏。
  • 在您的应用程序上运行分析器以识别潜在的内存泄漏

奇怪的是,我在 stackoverflow 上找不到记录如何解决 OOME 的规范问题 - 我的初衷是建议将其作为重复项关闭。

关于Tomcat 启动失败并出现 OOM,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54547850/

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