首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Tomcat OOM杀人

Tomcat OOM杀人
EN

Stack Overflow用户
提问于 2022-09-26 14:42:16
回答 1查看 61关注 0票数 0

我对猫有个问题。每隔一段时间Tomcat get就会被一个oom杀死..。

因此,我用压力测试测试它,以强制oom,然后尝试重新启动tomcat。

我编写了一个简单的bash脚本,它将重新启动tomcat服务。

这是一个脚本:

代码语言:javascript
复制
#!/bin/bash
if  [ "$(systemctl is-active tomcat9)" == "failed" ] || [ "$(systemctl is-active tomcat9)" == "inactive" ]; then
        echo "Restarting tomcat!"
        systemctl restart tomcat9.service
        exit
        else
        exit
fi

在setenv.sh中,我写了这个选项。

-XX:OnOutOfMemoryError='/root/restart.sh‘

这就是setenv.sh脚本的样子:

代码语言:javascript
复制
#!/bin/sh
JAVA_OPTS="$JAVA_OPTS -Djava.awt.headless=true -Dfile.encoding=UTF-8 -Djava.security.egd=file:/dev/./urandom -server -Xms1536m -Xmx1536m -XX:NewSize=1536m -XX:MaxNewSize=1536m -XX:OnOutOfMemoryError='pkill java;/root/restart.sh' -XX:+DisableExplicitGC -DecadiaConsoleLogLevel=off"

但我不知道为什么"XX:OnOutOfMemoryError“选项不起作用.

有人能帮我解决这个问题吗?

提前感谢!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-09-26 15:33:46

您正在通过systemd运行Tomcat。这有两个后果:

  • 很可能是来自systemd配置,而不是您编辑的脚本。因此,您需要查看其他文件才能进行有效的更改。

  • ,你需要告诉JVM的就是死在OutOfMemoryErrors上。然后告诉systemd自动重新启动服务。您的脚本根本不需要。
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73855818

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档