覆盖 Cloud foundry 应用程序中的堆内存配置

Overriding heap memory configuration in Cloud foundry Application

我正在使用以下参数覆盖 JVM 的堆配置 -

JBP_CONFIG_OPEN_JDK_JRE: '[memory_calculator: {memory_heuristics: {heap: 65, metaspace: 20}}]'

但我无法看到更改得到反映。有人可以帮忙吗?

您使用的选项仅适用于 Java 构建包的 3.x 版本。

从 Java buildpack 4 开始,您需要做的就是使用 JVM 配置选项设置 JAVA_OPTS。因此,如果您想覆盖最大堆大小并更改线程堆栈大小,您可以执行 cf set-env my-app JAVA_OPTS '-Xmx100m -Xss228k'.

Java buildpack 将读取这些值并尝试调整 JVM 使用的其他内存区域,以便它可以在定义的内存限制内容纳 运行 您的应用程序。如果它不能这样做,Java buildpack 将打印一条错误信息告诉您。

例如,如果您将内存限制设置为 512M,并将最大堆设置为 500M,那将不起作用。将没有足够的内存留给 JVM 的其他区域,JBP 将拒绝您的设置。这是一项安全检查,以防止您的应用程序在将来的某个时候超出内存限制和崩溃。