圖片上傳后台服務報內存溢出 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又報內存溢出呢?請大家討論區評論吧


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM