繁体   English   中英

memory openj9 和 k8s 的管理问题

[英]memory management problems with openj9 and k8s

我们正在运行一个带有一些 java 应用程序的 k8s 集群。 作为容器运行时,我们使用 cr-io 作为 jvm 采用 openjdk-16 openj9(应该有良好的容器支持)。

最近我们集群的工作负载增加了,我们注意到容器没有释放未使用的堆 memory。

我已经尝试了一些 gc 选项来实现这一点,但没有成功:

-Xtune:virtualized

-XX:+IdleTuningGcOnIdle -XX:IdleTuningMinIdleWaitTime=30 

-Xgc:concurrentScavenge

-XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/mnt/repository

我错过了什么?

查看OpenJ9 用户文档 > Memory 管理 > 堆大小调整 > 扩展和收缩

这解释了 OpenJ9 JVM 通过将分配的可用空间(在 GC 之后)的比率保持在由-xminf-xmaxf选项确定的范围内来调整堆大小。 JVM如果堆太小会“急切”地扩容,但对于收缩堆就“勉强”。

因此,鉴于-xminf-xmaxf的默认设置,您观察到的行为(堆没有缩小)可能只是正常行为。 (您可以使用-XX+PrintFlagsFinal选项找出他们在做什么。)

请注意,HotSpot JVM 具有大致相似的调整堆大小的机制,尽管命令行选项不同。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM