You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Heroku部署的React+Spring Boot应用内存超限崩溃求助

解决Heroku上React+Spring Boot应用的内存超限与崩溃问题

排查Spring Boot后端内存配置

Heroku免费/基础dyno的内存配额有限,即便回滚代码,JVM默认参数可能导致内存溢出:

  • 在Procfile中强制设置JVM内存上限,避免堆内存占用超限:
    web: java -Xmx400m -Xss256k -jar target/your-app.jar
    
    免费dyno总内存仅512MB,需预留部分给系统进程,Xmx建议设为400MB以内。
  • 用heroku logs --tail --app your-app-name实时监控内存变化,定位内存占用飙升的时间点与触发操作。

检查文件上传逻辑的内存泄漏

你修改过文件上传逻辑,即便回滚,也可能存在资源未释放的问题:

  • 确保文件上传采用流式处理,使用MultipartFile的transferTo()直接将文件写入磁盘或云存储,避免把整个文件加载到内存。
  • 排查代码中未关闭的输入/输出流、未释放的临时对象,这类问题会逐步耗尽内存,最终触发OOM。

清理Heroku环境缓存

删除项目重建后,Heroku的依赖缓存可能残留旧配置:

  • 清除Maven/npm构建缓存:
    heroku plugins:install heroku-builds
    heroku builds:cache:purge --app your-app-name
    
  • 重新部署时强制拉取最新依赖,避免缓存中的旧依赖引发内存问题。

分析崩溃日志定位根因

H10错误会包含崩溃堆栈,拉取详细日志:

heroku logs --ps web --app your-app-name

找到OutOfMemoryError或异常堆栈,确定是哪个类、方法导致的内存泄漏——比如文件上传时的临时对象未回收、第三方库内存溢出。

临时验证dyno规格

如果以上操作无效,临时升级到standard-1x dyno测试:

  • 若升级后内存问题消失,说明原dyno配额不足以支撑当前应用的内存需求;若问题依旧,可确定是代码层面的内存泄漏问题。

内容的提问来源于stack exchange,提问作者V M

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.30 05:49:58