Azure Webjob - OutOfMemoryError: Java heap space error

Azure Webjob - OutOfMemoryError: Java heap space error

当我尝试读取 JSON 数据(大约 50 mb)时,我在 azure webjob 中遇到 "OutOfMemoryError: Java heap space" 错误,该数据来自 API。

虽然我试图通过一次读取一小部分数据然后处理数据来优化代码。我想知道是否有任何方法可以增加 azure 中的堆大小?

我在本地机器上也遇到了同样的问题,将 -Xms512m -Xmx1024m 参数添加到 eclipse 运行 配置中解决了问题,但是将相同的参数添加到 web 作业批处理文件命令不起作用。

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

对于如何在 azure 中增加堆大小的任何建议,我都很感激。

编辑:我正在使用 Premium 1 Medium 应用程序服务计划。

我也检查了应用服务计划的内存使用情况,它没有超过 40%

决定您可以使用多少内存的是您的 Web 应用程序在其下运行的应用程序服务计划。您没有指定您现在使用的计划,但请尝试升级到更高层级。

详情见https://azure.microsoft.com/en-us/pricing/details/app-service/

我只能在将服务器更改为 64 位后才能将 1024 MB 分配给最大堆,我发现 Azure 中的 32 位系统有限制,我们不能将超过 512 MB 分配给最大堆。

我的 api-app (spring-boot) 是 S3 标准,具有 4 核和 7GB 内存,但应用程序抛出 java 堆 space 错误。尝试了各种方法来设置自定义堆大小,但没有成功。然后我设置应用程序设置(平台是 64 位)-> 应用程序设置变量为 _JAVA_OPTIONS = -Xmx4096m -Xms1512m

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