2017-05-03 63 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

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