• JVM调优实战--容器内应用内存溢出被杀死


    威哥评:这篇文章是我的小伙伴hwang根据他在production环境遇到的实际问题整理的,简单来说就是让JVM听你的话,说内存多大就多大。说实话,hwang这篇文章给我了一个小小的惊喜,他的文笔真是不错,很生动的技术文章。

    所谓的容器应用内存溢出被杀死,即为oom(out of memory) killed exit code 137。

    初次遭遇
    相信玩java容器化部署的朋友肯定遇到过oom killed exit code 137,解决方案很多,糙快猛的就重启或者直接docker run --restart=always。去年第一次遇到的时候,哈哈,是秀一下自己还知道点jvm调优的时候了:

    docker run … JAVA_OPTS=“-server -Xmx1024m”
    顺道还长了点其它知识,

    docker run … --memory1300MJAVA_OPTS=“-server -Xmx1024m”
    容器的内存要大于Xmx内存,此前有不知道的同学配置失误导致启动失败,宣导之。以为从此可以高枕无忧了。

    服务又挂了
    岂料,好景仅半年,近日频遭下游业务方投诉,你们的服务又双叒叕不能用了!去现场扫了一眼,oom killed exit code 137。太好了,又可以jvm调优了。于是再给配上heapdump

    docker run … --memory1300MJAVA_OPTS=“-server -Xmx1024m -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/data/logs/”
    服务很配合的一两天就又挂了。再去现场,咦,我的heapdump呢?为什么日志文件夹下除

  • 相关阅读:
    Java语言Map中GetOrDefault方法的使用
    STM32MP157汇编流水灯
    算法|图论 2
    java计算机毕业设计基层党支部建设平台MyBatis+系统+LW文档+源码+调试部署
    数据结构的结构复杂度你了解么
    回收站里面的东西删除了怎么恢复?
    Redis数据结构
    08.29xpath 和css选择器元素定位练习
    单调栈和单调队列
    【MySQL】锁
  • 原文地址:https://blog.csdn.net/wjw_77/article/details/127446321