2016-04-08 125 views
0

我有一個計算密集型應用程序(它執行一些數字方法操作,所以通過此代碼有很大的堆大小消耗是正常的),並且在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堆大小

感謝

索林

回答

0

在谷歌應用程序引擎,你是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內存」的鏈接已損壞,請您發佈有效的參考鏈接? –