我们正在运行一个带有一些 Java 应用程序的 k8s 集群。作为容器运行时,我们使用 cr-io,作为 jvm 采用 openjdk-16 openj9(应该有良好的容器支持)。
最近我们的集群上的工作负载增加了,我们注意到容器不会释放未使用的堆内存。
我尝试了一些 gc 选项来实现这一点,但没有成功:
-Xtune:virtualized
-XX:+IdleTuningGcOnIdle -XX:IdleTuningMinIdleWaitTime=30
-Xgc:concurrentScavenge
-XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/mnt/repository
我错过了什么?