2017-05-03 65 views
0

當我嘗試讀取來自API的單行內容的JSON數據(約50 MB)時,我在azure webjob中面臨「OutOfMemoryError:Java堆空間」錯誤。Azure Webjob - OutOfMemoryError:Java堆空間錯誤

雖然我試圖通過一次讀取一小部分數據然後處理數據來優化代碼。我想知道是否有任何方法可以增加天藍色的堆大小?

我在我的本地機器上也遇到了同樣的問題,在eclipse運行配置中添加-Xms512m -Xmx1024m參數修復了這個問題,但是向web作業批處理文件命令添加相同的命令卻不起作用。

"%JAVA_HOME%"\bin\java -Djava.net.preferIPv4Stack=true -Djava.net.preferIPv6Addresses=false -Xms512m -Xmx1024m -jar jarfilename.jar 

我很感激任何關於如何在azure中增加堆大小的建議。

編輯:我正在使用Premium 1中應用服務計劃。

我檢查應用程序的服務計劃內存使用情況以及其不超過40%

回答

0

只有在將服務器更改爲64位後,我才能將1024 MB分配給最大堆,但我發現Azure中的32位系統有限制,我們無法提交超過512 MB的最大堆。

1

是什麼決定了你能使用多少內存是應用服務的計劃,你的Web應用程序下運行。您沒有指定您現在使用的計劃,而是嘗試擴展到更高層。

有關詳細信息,請參閱https://azure.microsoft.com/en-us/pricing/details/app-service/

+0

我使用P 1中等應用程序服務計劃,我相信它有3個演出記憶,我甚至檢查了應用程序服務計劃內存使用率它不超過40% –

+0

P1有1.75。試着簡單地切換到P2,看看是否有所作爲。 –

+0

我也試過p2,但它沒有工作,只有在將服務器切換到64位後,我才能夠添加1024MB堆大小併成功運行webjob,對於azure 512位系統似乎是32位系統是我們可以提交的最大堆。 –

0

我的api-app(spring-boot)是S3標準的4核和7GB ram,但是應用程序卻拋出java堆空間錯誤。嘗試各種方式來設置自定義堆大小,但沒有運氣。所以然後我安裝應用程序設置(平臺是64位) - >應用程序設置變量爲_JAVA_OPTIONS = -Xmx4096m -Xms1512m

我可以看到初始堆增加。 :)