在Google Compute Engine实例上自定义Java堆大小

问题描述:

我有一个计算密集型应用程序(它执行一些数字方法操作,所以通过此代码有很大的堆大小消耗是正常的),并且在Google App上运行时引发它引发:“java.lang.OutOfMemoryError:Java堆空间”。即使Google App Engine假装自动缩放以适应应用程序的要求,这在堆大小方面也不会发生。然后,我尝试在Google Compute Engine上创建一些实例,比如“具有60 GB内存的16个VCPU”,但仍然出现此错误,因为我怀疑即使此实例使用的堆大小小于1 GB。所以我的问题是:如何自定义Google Compute Instances或Google App Engine上的堆大小,以便我可以设置2 GB的堆大小?在Google Compute Engine实例上自定义Java堆大小

感谢

索林

在谷歌应用程序引擎,你是limited to 1GB of RAM上最大的保险类型,因此,如果您需要超过1GB RAM越多,你需要使用的Compute Engine或App Engine Flexible Environment

在VM上运行时,您需要设置the -Xmx and -Xms标志来分别控制最大和最小堆大小。

请注意,您可能需要使用java64才能使用超过4GB的RAM。

+0

因此,对于Google App Engine,最大RAM为1 GB,但为JVM堆留出多少?此外,对于GAE,可以对堆大小进行任何定制,或者对最终用户不可用? –

+0

我很确定GAE上的最大堆大小是1GB。此参数不可自定义,并由GAE运行时控制。 –

+0

您在原始答案中发布的“限于1 GB内存”的链接已损坏,请您发布有效的参考链接? –