【问题标题】:Openshift v3: after starting the SpringBoot / Mysql application the app is killed after a few secsOpenshift v3:启动 Spring Boot / Mysql 应用程序后,应用程序会在几秒钟后被杀死
【发布时间】:2017-09-21 13:01:53
【问题描述】:

构建应用程序后,部署过程开始工作。 SpringBoot (mysql) 应用程序被部署并标记为通常的“启动应用程序”。

几秒钟后,有一条消息说它“杀死”了应用程序。请注意,我刚好在我的 Openshift 免费配额的范围内。

消息是什么? .../wildfly/bin/standalone.sh:第 307 行:183 杀死“java”-D“[Standalone]” 请参阅粗体字。

在另一次我看到应用程序已启动,我什至可以登录,但一分钟后被杀死。

14:47:15,334 INFO [nl.xyz.Application] (ServerService 线程池 -- 66)在 26.49 秒内启动应用程序(JVM 运行时间为 57.227) 14:47:15,723 信息 [javax.enterprise.resource.webcontainer.jsf.config] (ServerService 线程池 -- 66) 初始化 Mojarra 2.2.13.SP1 20160303-1204 for context '' /wildfly/bin/standalone.sh第 307 行:183 杀死“java”-D“[Standalone]” -server -XX:+UseParallelGC -Xms40m -Xmx250m -XX:+AggressiveOpts -XX:MinHeapFreeRatio=20 -XX:MaxHeapFreeRatio=40 -XX:GCTimeRatio=4 -XX:AdaptiveSizePolicyWeight=90 -Dorg.apache.tomcat.util.LOW_MEMORY=true -DOPENSHIFT_APP_UUID= -Djboss.modules .system.pkgs=org.jboss.byteman -Djava.awt.headless=true -Dorg.jboss.resolver.warning=true -Djava.net.preferIPv4Stack=true -Dfile.encoding=UTF-8 -Djboss.node.name =solvedcaches-5-80fj7 -Djgroups.bind_addr=0.0.0.0 -Dorg.apache.coyote.http11.Http11Protocol.COMPRESSION=on "-Dorg.jboss.boot.log.file=/wildfly/standalone/log/server.log " “-Dlogging.configuration=file:/wildfly/standalone/configuration/logging.properties” -jar "/wildfly/jboss-modules.jar" -mp "/wildfly/provided_modules:/wildfly/modules" org.jboss.as.standalone -Djboss.home.dir="/wildfly" -Djboss.server.base.dir="/wildfly/standalone" '-b' '0.0.0.0' '-bmanagement' '0.0.0.0'

由于一般构建失败,最后 2 个构建失败。奇怪的是,代码几乎没有改变。看起来重建会占用​​内存并与正在运行的应用程序竞争,反之亦然。上次我停止 POD,然后部署就可以了。

【问题讨论】:

  • 请查杀原因。我认为是 Kubernetes 杀死了应用程序,因为它使用的内存超出了允许的范围。所以用oc describe <pod>检查重启原因。您也可以提供更多内存来测试。第二个问题可能是健康检查,它检查得太早并杀死了应用程序 -> 但这在事件中也可见(Openshift Online Web Console -> Monitoring -> Monitoring and Events)
  • 我尽量减少了应用。我在后续日志中看到构建以 Success 完成。当我查看监视器时,我看到构建失败“通用构建失败运行了 55 秒”。使用“oc get pods”,我看到它是“OOMKilled”。所以我什至不能做“oc describe ...”。我能做些什么?该应用程序已经是“皮肤和骨骼”。我可以更改内存设置吗?
  • 如果默认限制 (oc describe limits resource-limits) 不够,您可以在 部署配置 中调整应用程序的内存限制。但是,正如您指出的那样,您只是在配额限制内(OpenShift Online 免费入门计划),您需要首先减少 MySQL 部署配置的内存限制。构建过程使用terminating resources quota,并且默认限制为每个容器相同的 512 MiB,如果未在 构建配置 中另行指定。
  • @Jiri Fiala,请将您的评论作为答案。播放两个 POD 的内存设置后,应用程序变得更加稳定。您能否建议 MySql 的良好内存资源设置是什么?然后我可以给应用程序更多的空间和稳定性。

标签: openshift


【解决方案1】:

感谢 @Jiri Fialka 的所有在线/离线帮助。 正如您所建议的,在通过 2 个 POD 配置内存后,应用程序运行正常。现在我为 Mysql 使用 410 Mb,为 SpringBoot 使用 600 Mb,这是 Wildfly pod 上的 WAR。甚至 SSH 在几分钟内就被添加了! 我对新的 Openshift v3 设施充满热情。还有 GUI 和 oc。

【讨论】:

    猜你喜欢
    • 2020-05-11
    • 2016-08-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-10-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多