gpt4 book ai didi

java - cloudfoundry java buildpack 内存更改未反射(reflect)

转载 作者:行者123 更新时间:2023-12-02 12:57:12 24 4
gpt4 key购买 nike

我想在 cloudfoundry java-buildpack 中更改我的 java 应用程序的内存设置。我尝试过这两种方法:

  1. 在我的manifest.yml中使用JBP_CONFIG_OPEN_JDK_JRE参数。作为建议在 https://github.com/cloudfoundry/java-buildpack-memory-calculator
  2. 在 config\open_jdk_jre.yml 中进行此更改:

memory_calculator:
version: 3.8.0_RELEASE
repository_root: "{default.repository.root}/memory-calculator/{platform}/{architecture}" stack_threads: 300
memory_sizes:
stack: 2M
metaspace: 160M
heap: 900M

但是,在部署我的应用程序时,这些都没有得到反射(reflect)。我正在使用最新的 java-buildpack。

最佳答案

这取决于您正在使用的 Java 构建包的版本。

版本 3.x

对于 3.x 版本,您可以设置一个环境变量来配置内存计算器。就像这里一样。

https://github.com/cloudfoundry/java-buildpack/tree/3.x#configuration-and-extension

例如:

cf set-env my-application JBP_CONFIG_OPEN_JDK_JRE '{ memory_calculator: { memory_heuristics: { heap: 85, stack: 10 } } }'

这将覆盖构建包中默认的内存启发式配置,特别是堆和堆栈权重。

一些注意事项:

  • 了解不同内存配置选项的作用是另一回事。您可以阅读这些 here .
  • 这仅适用于 OpenJDK,如果您使用不同的 JDK,则配置选项会略有不同。例如:Oracle 的 JBP_CONFIG_ORACLE_JRE。该名称反射(reflect)了 config file path & name .
  • 如何为应用程序设置环境变量并不重要。您可以像上面一样使用 cf set-env ,也可以在 manifest.yml 文件中设置 env 变量。两者都工作得很好。

版本 4.x

在 4.x 版本中,JVM 内存设置的配置变得更加简单。

however if you believe that your application doesn’t need these JVM defaults, you can now configure those memory regions directly with JVM options.

https://www.cloudfoundry.org/just-released-java-buildpack-4-0/

这意味着您仍然通过环境变量配置 JVM 设置,但您只需要设置 JAVA_OPTS 并使用标准 JVM 配置选项。

例如:

cf set-env my-app JAVA_OPTS '-XX:ReservedCodeCacheSize=100M'

如果您更喜欢这样做而不是运行 cf set-env,则可以在 Manifest.yml 中设置 JAVA_OPTS

希望有帮助!

关于java - cloudfoundry java buildpack 内存更改未反射(reflect),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44396432/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com