2016-02-12 43 views
0

我已将应用程序部署到Cloud Foundry。它在java7下使用java buildpack v2.4时可以很好地处理1Gb的堆空间。但是,在升级到java8 buildpack v3.3.1后,它开始随时崩溃并出现OutOfMemoryError。即使将最大堆大小增加到2GB也无济于事。我需要找出它发生的原因。CloudFoundry中的OutOfMemoryError导致应用程序失败

我是Cloud Foundry的新手,我想知道如何从部署到CF的应用程序获取堆转储。你能提供这方面的建议吗?或者,也许你有一些想法,为什么改变buildpack可能会导致这样的问题?

回答

0

的问题可能涉及到MaxMetaspaceSize设置:

“在JDK 8,持久代已删除,而类的元数据在本机内存中分配的,可用于类的元数据的本地内存量。默认情况下是无限的,使用选项MaxMetaspaceSize可以为用于类元数据的本地内存量设置一个上限。“ from Oracle's

由于Cloud Foundry Docs的“分配足够的内存 ”部分中描述的那样,可能需要自定义buildpack定制这些参数

“要为你的应用程序配置内存相关的JRE选项,您创建一个自定义buildpack并在部署清单中指定此buildpack有关配置自定义构建包和清单的更多信息,请参阅自定义构建包和使用应用程序清单部署主题。

希望能指引您朝着正确的方向发展。

相关问题