【发布时间】:2022-01-12 16:04:03
【问题描述】:
我有一个在 k8s 上运行的应用程序,并且想更新 java heapsize 。 我已经更新了 JAVA_OPTS 环境变量并将其设置在部署文件中,如下所示
- name: JAVA_OPTS
value: "-Xmx768m -XX:MaxMetaspaceSize=256m"
但是当我运行以下命令时,我的更改似乎没有生效
java -XX:+PrintFlagsFinal -version | grep -iE 'HeapSize|PermSize|ThreadStackSize'
intx CompilerThreadStackSize = 0 {pd product}
uintx ErgoHeapSizeLimit = 0 {product}
uintx HeapSizePerGCThread = 87241520 {product}
uintx InitialHeapSize := 33554432 {product}
uintx LargePageHeapSizeThreshold = 134217728 {product}
uintx MaxHeapSize := 536870912 {product}
intx ThreadStackSize = 1024 {pd product}
intx VMThreadStackSize = 1024 {pd product}
openjdk version "1.8.0_212"
OpenJDK Runtime Environment (IcedTea 3.12.0) (Alpine 8.212.04-r0)
OpenJDK 64-Bit Server VM (build 25.212-b04, mixed mode)
我错了,谁能帮我解释一下如何设置软管值?
【问题讨论】:
-
如果升级到 JDK11,或者最新的 Java8,则不需要这些值,因为将使用完整的容器空间
-
这是一个开源应用程序,我无法执行升级,我只是想了解和调整我现在拥有的内容。
-
JDK 9 支持一个新的环境变量
JDK_JAVA_OPTIONS将选项添加到命令行中指定的选项 -
你的 alpine 容器不是应用程序,它只是打包它。您应该能够选择一个较新的 JRE 容器并将您的应用程序放入其中(如果必须,构建一个新映像而不是从 Docker Hub 中提取)。除此之外,尚不清楚您从哪里运行
java。你kubectl exec到容器了吗?注意任何容器都可以选择忽略JAVA_OPTS -
@OneCricketeer ,是的,我使用 kubectl exec 到容器并运行 java -XX:+PrintFlagsFinal -version | grep -iE 'HeapSize|PermSize|ThreadStackSize'
标签: java kubernetes