我正面临" OutOfMemoryError:Java堆空间"当我尝试读取JSON数据(大约50 mb)时,azure webjob中出现错误,该数据来自API。
我正在尝试通过一次读取一小部分数据然后处理数据来优化代码。我想知道是否有办法增加azure中的堆大小?
我在本地机器上遇到同样的问题,在eclipse运行配置中添加-Xms512m -Xmx1024m参数修复了问题,但是添加到web作业批处理文件命令并没有工作。
"%JAVA_HOME%"\bin\java -Djava.net.preferIPv4Stack=true -Djava.net.preferIPv6Addresses=false -Xms512m -Xmx1024m -jar jarfilename.jar
我很欣赏有关如何在azure中增加堆大小的任何建议。
编辑:我正在使用Premium 1 Medium应用服务计划。
我检查了应用服务计划的内存使用情况,但没有超过40%
答案 0 :(得分:1)
决定您可以使用多少内存的是您的Web App运行的应用服务计划。您没有指定您现在使用的计划,但尝试扩展到更高层。
有关详细信息,请参阅https://azure.microsoft.com/en-us/pricing/details/app-service/。
答案 1 :(得分:0)
我只能在将服务器更改为64位后才能将1024 MB分配给最大堆,我发现azure中的32位系统有限制,我们不能提交超过512 MB的最大堆。
答案 2 :(得分:0)
我的api-app(spring-boot)是具有4核和7GB内存的S3标准,但应用程序却抛出了java堆空间错误。尝试了各种方法来设置自定义堆大小,但没有运气。那么我设置应用程序设置(平台是64位) - >应用设置变量为_JAVA_OPTIONS = -Xmx4096m -Xms1512m
我可以看到初始堆增加了。 :)