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运行时环境(建1.8.0_191-B12)OpenJDK的64位服务器VM(建立25.191-B12,混合模式)。
从总结的意见,以及这里一些额外的步骤一些技巧。任何人都无法给你最终的答案,为什么你得到一个OOME,你需要深入到它自己:
JAVA_OPTIONS
,但它会是JAVA_OPTS
。嗯,事实上,它甚至不是说:CATALINA_OPTS
的JAVA_OPTS
代替。此只设置存储器,用于启动Tomcat,且需要较少的存储器来运行(例如)关闭过程。-Xms
和-Xmx
为相同的值:如果计划最终提供-Xmx
内存,你还不如确保当您启动过程Java可以分配内存。否则,你可能会在凌晨3点在周日晚上碰上不可用OS-内存。jconsole
或类似工具你正在运行的进程,找出存储器图案:它看起来像一个不断增加的内存使用情况?您的应用程序可能存在内存泄漏。奇怪的是,我无法找到文档如何解决OOME计算器上的规范问题 - 我的初衷是建议关闭此为重复。