我们正在将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:
服务器重新启动
您是否设置了容器内存资源请求和限制?Jdk 8u131不知道它在容器内运行。它仍然可以看到主机VM资源。这可能就是为什么容器中的JVM会立即被杀死的原因。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。