zoukankan      html  css  js  c++  java
  • 图片上传后台服务报内存溢出 Out Of Memory Java heap space

    背景

    前端调用后台,后台调用阿里云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又报内存溢出呢?请大家讨论区评论吧

  • 相关阅读:
    Java多线程学习---------超详细总结(java 多线程 同步 数据传递 )
    类的高级特性——抽象类
    多态
    继承、继承中的重写
    接口interface、实现接口implements
    “==”运算符与equals()
    静态成员
    对象
    属性和行为(成员变量和成员方法)
    字符串生成器
  • 原文地址:https://www.cnblogs.com/lingduqianli/p/14968002.html
Copyright © 2011-2022 走看看