我正在尝试将JVM设置传递给一个Java应用程序,该应用程序配置为使用JKube Maven插件在Openshift上部署。我在deployment.yaml文件中添加了以下设置:
spec:
template:
spec:
containers:
- env:
- name: JAVA_OPTS
value: '-Xms128m -Xmx1024m -XX:MetaspaceSize=128M -XX:MaxMetaspaceSize=256m'当-XX:MaxMetaspaceSize):进程在Pod中启动时,我可以看到Java_OPTS被默认值覆盖(参见第二个Java_OPTS设置)
DEBUG [org.jboss.as.config] (MSC service thread 1-1) VM Arguments: -Xms128m -Xmx1024m -XX:MetaspaceSize=128M -XX:MaxMetaspaceSize=256m -XX:+UseParallelOldGC -XX:MinHeapFreeRatio=10 -XX:MaxHeapFreeRatio=20 -XX:GCTimeRatio=4 -XX:AdaptiveSizePolicyWeight=90 -XX:MaxMetaspaceSize=100m -XX:+ExitOnOutOfMemoryError 这最终导致:
Terminating due to java.lang.OutOfMemoryError: Metaspace您能推荐一种在使用JKube插件时正确设置JVM设置的方法吗?谢谢
发布于 2020-12-29 09:23:59
您必须使用GC_MAX_METASPACE_SIZE环境变量来定义Metaspace的最大大小。例如:
- name: GC_MAX_METASPACE_SIZE
value: 256具体来说,这里有一个例子:如何在Kubernetes/OpenShift上设置METASPACE大小使用JKube
https://stackoverflow.com/questions/65480650
复制相似问题