首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Tomcat因内存中断被docker容器杀死

Tomcat因内存中断被docker容器杀死
EN

Stack Overflow用户
提问于 2017-08-03 23:56:29
回答 1查看 1.3K关注 0票数 2

我最近正在用tomcat开发一个rest服务。我设置了JAVA_OPTS = -Xmx1648m -Xmn1648 -server,并确保它们已经生效。坞站正在内存限制设置为4g的情况下运行。

据观察,tomcat进程的内存使用量一直在增长,最终达到4g。然后,内存成本在几分钟到几个小时之间随机地保持在99% ~ 100%之间。然后,tomcat进程崩溃,没有出现任何类似jvm heap oom的错误。

当docker统计数据观察到的内存消耗约为3.5g时,我使用jmap转储堆。转储文件大小小于400m。使用mat分析转储文件显示,大多数内存碎片实际上可以被垃圾收集。我还手动运行了jcmd pid GC.run,这极大地减少了内存使用量(从2g减少到1.4g)。

我的检查是tomcat从未达到jvm设置的限制,否则,应该会有关于jvm heap oom的错误日志。然后,内存应该由jvm或tomcat中的其他线程消耗。但是我找不到解决这个问题的方法。请帮帮我!

EN

回答 1

Stack Overflow用户

发布于 2017-08-04 02:57:09

当Xmx设置为1648ie 1.4G时,JVM将不会使用更多。如果存在内存分配问题,则可能导致OOM。当你说“内存成本保持在99% ~100%之间”时,你是指RAM内存吗?在这种情况下,您的RAM大小是多少?你的任务负荷是多少?您是否正在进行频繁的I/O操作?

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45489216

复制
相关文章

相似问题

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