heap-memory - 在 Cloud Foundry 应用程序中覆盖堆内存配置
问题描述
我正在使用以下参数来覆盖我的 JVM 堆配置 -
JBP_CONFIG_OPEN_JDK_JRE: '[memory_calculator: {memory_heuristics: {heap: 65, metaspace: 20}}]'
但我无法看到这些变化得到反映。有人可以帮忙吗?
解决方案
您使用的选项仅适用于 Java buildpack 的 3.x 版。
从 Java buildpack 4 开始,您需要做的就是设置JAVA_OPTS
您的 JVM 配置选项。因此,如果您想覆盖最大堆大小并更改线程堆栈大小,您可以执行cf set-env my-app JAVA_OPTS '-Xmx100m -Xss228k'
.
Java buildpack 将读取这些值并尝试调整 JVM 使用的其他内存区域,以便它可以在定义的内存限制内运行您的应用程序。如果它不能这样做,Java buildpack 将打印一条错误消息告诉您这一点。
例如,如果您将内存限制设置为 512M,并且您将最大堆设置为 500M,那么这是行不通的。JVM 的其他区域将没有足够的内存,JBP 将拒绝您的设置。这是一项安全检查,以防止您的应用程序超出内存限制并在未来某个时间点崩溃。
推荐阅读
- windows - 优化 TensorFlow-GPU
- r - 聚类观察位置而不是 R 中的单个观察
- php - 如何在 PHP 中解压 MySQL 多点几何数据?
- c# - 如何使用 Push() 将多个条目保存到 Firebase 而不会发生写入冲突?
- elasticsearch - Elasticsearch api 结合范围和标签
- html - 错误类型错误:无法读取 angularjs 6 中未定义的属性“0”
- android - 为什么我的 ConstraintLayout 链无法构建?
- android - 类似于 Xamarin.Android 弹出菜单的小部件,用于 Xamarin.Forms?
- c++ - 编译器错误 C2371“重新定义基本类型”,原因不明
- java - Android Studio “错误:不兼容的类型:Fragment 无法转换为 SupportMapFragment”