我已将应用程序部署到Cloud Foundry。它曾经在java7下使用java buildpack v2.4在1Gb的堆空间下正常工作但是在升级到java8 buildpack v3.3.1后,它开始随时出现OutOfMemoryError崩溃。即使将最大堆大小增加到2GB也没有任何帮助。我需要找出它发生的原因。
我是Cloud Foundry的新手,我想知道如何从部署到CF的应用程序中获取堆转储。你能就此提出建议吗?或者您可能有一些想法为什么更改buildpack可能会导致此类问题?
答案 0 :(得分:0)
问题可能与MaxMetaspaceSize设置有关:
“在JDK 8中,永久代被删除,类元数据在本机内存中分配。可用于类元数据的本机内存量默认为无限制。使用选项MaxMetaspaceSize设置上限用于类元数据的本机内存量。“ from Oracle's
如“分配足够的内存”中所述 “Cloud Foundry Docs的部分,可能需要自定义buildpack来自定义这些参数
“要为您的应用程序配置与内存相关的JRE选项,您需要创建自定义构建包并在部署清单中指定此buildpack。有关配置自定义构建包和清单的更多信息,请参阅自定义构建包和使用应用程序清单部署主题。“
希望指出你正确的方向。