如何防止Spring Boot / Tomcat(Java8)进程被OOM杀死?

自从迁移到Tomcat8 / Java8以来,Tomcat服务器有时会被OOM杀死。OOM = Linux内核杀死内存不足。

如何防止Tomcat服务器被OOM杀死?

这可能是内存泄漏的结果吗?我想我会收到一条正常的内存不足消息,但是没有OOM杀伤力。正确的?

我应该更改HEAP大小的设置吗?我应该更改MetaSpace大小的设置吗?

知道哪个Tomcat进程被杀死了,如何检索信息以便重新配置Tomcat服务器?


倚天杖
浏览 252回答 2
2回答

慕运维8079593

另一个非常好的解决方案是将您的应用程序转换为Spring Boot JAR(Docker)应用程序。通常,此应用程序的内存消耗要少得多。因此,请进行以下步骤以获得巨大的改进(如果可以迁移到Spring Boot应用程序):迁移到Spring Boot应用程序。就我而言,这仅需执行3个简单的操作。使用重量较轻的基本图像。见下文。非常重要-使用Java内存平衡选项。请参阅下面的Dockerfile的最后一行。这将我正在运行的容器RAM使用量从650MB以上减少到仅240MB。运行平稳。所以,SAVING超过400MB 650MB上!这是我的Dockerfile:FROM openjdk:8-jdk-alpineENV JAVA_APP_JAR your.jarENV AB_OFF trueEXPOSE 8080ADD target/$JAVA_APP_JAR /deployments/CMD ["java","-XX:+UnlockExperimentalVMOptions", "-XX:+UseCGroupMemoryLimitForHeap", "-jar","/deployments/your.jar"]
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java