开发者社区> 问答> 正文

kubernetes / docker中的jvm比独立的内存更快地耗尽内存

我们正在将JDK 1.8v131 JVM服务器迁移到Kubernetes / Docker环境。我们在独立虚拟机中运行的JVM服务器很少,而且很少运行Kubernetes / Docker环境,这两种类型都存在于生产环境中。在相同的负载下,Kubernetes / Docker JVM的内存不足,而VM中的JVM运行正常而没有问题。我们使用精确的SAME JVM参数在VM和Container中运行。有任何想法如何解决这个问题?

以下是选项:环境:JAVA_MEM_OPTS:-Xms2048M -Xmx2048M -XX:MaxPermSize = 256M -XX:+ ExitOnOutOfMemoryError -agentlib:jdwp = transport = dt_socket,server = y,suspend = n,address = 5005 -XX:+ HeapDumpOnOutOfMemoryError - XX:HeapDumpPath = / heapdumps / $ {HOSTNAME} $(日期+%Y%m%d%H_%M_%S).hprof JAVA_GC_OPTS:-Dnogclogging = true -XX:+ PrintGC -XX:+ PrintGCDetail

2018-12-07T15:43:21.42043862Z {GC调用前的堆= 2880(完整625):
2018-12-07T15:43:21.420465613Z PSYoungGen总计435712K,二手249344K
2018-12-07T15:43:21.420469712Z伊甸园空间249344K,100%使用
2018-12-07T15:43:21.420472561Z从空间186368K,0%使用
2018-12-07T15:43:21.420475332Z到空间228352K,0%使用
2018-12-07T15:43:21.420477921Z ParOldGen总计1398272K,使用1397679K
2018-12-07T15:43:21.420480674Z对象空间1398272K,99%使用
2018-12-07T15:43:21.420483127Z Metaspace使用229431K,容量249792K,承诺249968K,保留1271808K
2018-12-07T15: 43:21.420485549Z类空间使用24598K,容量27501K,承诺27544K,保留1048576K
2018-12-07T15:43:22.628605014Z 2018-12-07T15:43:21.420 + 0000:124733.208:]] 1647023K-> 1646334K(1833984K),],1.2079201 secs] [次:用户= 1.98 sys = 0.01,实际= 1.21秒]
2018-12-07T15:43:22.62868917Z堆之后GC调用= 2880(全625):
2018-12-07T15:43:22.628794768Z PSYoungGen总435712K,使用248654K
2018-12-07T15:43:22.628799885 Z eden space 249344K,99%使用
2018-12-07T15:43:22.628803713Z从空间186368K,0%使用
2018-12-07T15:43:22.628807485Z到空间228352K,0%使用
2018-12-07T15:43: 22.628811115Z ParOldGen总计1398272K,使用1397679K
2018-12-07T15:43:22.62881498Z物体对象空间1398272K,99%使用
2018-12-07T15:43:22.628818943Z Metaspace使用229431K,容量249792K,承诺249968K,保留1271808K
2018-12-07T15:43:22.628827543Z类空间使用24598K,容量27501K,承诺27544K,保留1048576K
2018-12-07T15 :43:22.628831766Z}
2018-12-07T15:43:22.632712004Z {GC调用前的堆= 2881(完整626):
2018-12-07T15:43:22.63273803Z PSYoungGen总计435712K,使用249344K
2018-12-07T15: 43:22.632742051Z伊甸园空间249344K,100%使用**
** 2018-12-07T15:43:22.63274617Z从空间186368K,0%使用
2018-12-07T15:43:22.632752151Z到空间228352K,0%使用
2018 -12-07T15:43:22.632756279Z ParOldGen总计1398272K,二手1397679K
2018-12-07T15:43:22.632760269Z对象空间1398272K,99%使用
2018-12-07T15:43:22.632764456Z Metaspace使用229431K,容量249792K,承诺249968K,保留1271808K
2018-12-07T15:43:22.632768599Z类空间使用24598K,容量27501K,承诺27544K,保留1048576K
2018-12-07T15:43:23.164683101Z 2018-12-07T15:43:22.632 + 0000:124734.420:
服务器重新启动

展开
收起
k8s小能手 2018-12-14 15:07:56 5231 0
1 条回答
写回答
取消 提交回答
  • 整合最优质的专家资源和技术资料,问答解疑

    您是否设置了容器内存资源请求和限制?Jdk 8u131不知道它在容器内运行。它仍然可以看到主机VM资源。这可能就是为什么容器中的JVM会立即被杀死的原因。

    2019-07-17 23:20:59
    赞同 1 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
应用 Docker 进行持续交付:用技术改变交付路程 立即下载
从Docker到容器服务 立即下载
构建基因数据应用生态系统—— docker in Bio/informatics 立即下载