背景

前端调用后台,后台调用阿里云OSS上传图片时,图片大小如果超过900Kb,前端就会报Http 500内部服务器的异常信息。但是上传小于900kb大小的图片就没有问题。

现象

  • 前端:http 500异常。

  • 后台服务日志:Out Of Memory : Java heap space

解决办法

  1. 通过上传图片大小能判断出,服务器是通的,也就是说是后台服务器的问题,或者OSS服务有限制大小或者带宽的问题。

  2. 通过查看后台日志,后台报堆内存溢出,异常信息如下。

     org.springframework.web.util.NestedServletException: Handler dispatch failed; nested exception is java.lang.OutOfMemoryError: Java heap space
  3. 通过异常信息,暂时排除OSS服务的问题。

  4. 分析图片大小,正常情况下,一个900KB大小的图片信息,后台读取大概需要10M的内存。然后查看了当前进程启动内存,是128M,正常情况下128M是可以的。但是在多线程并发的情况下,其实这个内存很小。后来启动内存改为最大内存改为256M后,再测试通过。但是图片大小超过3M还是报内存溢出?

  5. 问题点:为什么超过图片大小超过3M又报内存溢出呢?请大家讨论区评论吧

相关文章:

  • 2022-12-23
  • 2021-12-13
  • 2022-12-23
  • 2021-07-14
猜你喜欢
  • 2021-12-21
  • 2022-01-08
  • 2022-12-23
  • 2022-02-05
  • 2021-04-22
  • 2021-06-20
相关资源
相似解决方案