【问题标题】:customize Java heap size on Google Compute Engine instances在 Google Compute Engine 实例上自定义 Java 堆大小
【发布时间】:2016-04-08 17:05:37
【问题描述】:

我有一个计算密集型应用程序(它执行一些数值方法操作,因此这段代码会消耗这么大的堆大小是正常的),当在 Google App Engine 上运行时它会抛出:“java.lang. OutOfMemoryError:Java 堆空间”。甚至 Google App Engine 也假装自动扩展以适应应用程序的需求,但在堆大小方面不会发生这种情况。然后我尝试在 Google Compute Engine 上创建一些实例,例如“16 个 VCPU 和 60 GB 内存”,但仍然出现该错误,因为我怀疑即使此实例使用的堆大小也小于 1 GB。所以我的问题是:如何在 Google Compute Instances 或 Google App Engine 上自定义堆大小,以便将堆大小设置为 2 GB?

谢谢

索林

【问题讨论】:

    标签: java google-app-engine jvm google-compute-engine heap-size


    【解决方案1】:

    在 Google App Engine 上,您在最大的保险类型上是 limited to 1GB of RAM,因此如果您需要超过 1GB 的 RAM,则需要使用 Compute Engine 或 App Engine Flexible Environment

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

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

    【讨论】:

    • 那么,对于 Google App Engine,最大 RAM 为 1 GB,但为 JVM 堆保留了多少?此外,对于 GAE,是否可以对堆大小进行任何自定义,或者最终用户无法使用?
    • 我很确定 GAE 的最大堆大小为 1GB。此参数不可自定义,由 GAE 运行时控制。
    • 您在原始答案“限制为 1 GB RAM”中发布的链接已损坏,您能否发布一个有效的参考链接?
    猜你喜欢
    • 2014-11-22
    • 2014-11-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-11-05
    相关资源
    最近更新 更多