【问题标题】:Out of memory in Spring Boot applicationSpring Boot 应用程序内存不足
【发布时间】:2017-12-04 13:08:49
【问题描述】:

我有一个 Spring Boot 应用程序,在处理非常大的上传文件时可能会耗尽内存。我在运行 ./gradlew bootRun 并使用嵌入式 tomcat 时遇到了这个问题。

我可以在TomcatEmbeddedServletContainerFactory 中设置 gradle 选项或其他配置来设置 Spring Boot 应用程序允许的最大内存吗?我想在配置文件或 build.gradle 文件本身中有一些东西,所以它适用于所有开发人员。

我尝试在gradle.properties中设置org.gradle.jvmargs=-Xmx12000m,但似乎没有效果。

【问题讨论】:

  • -Xmx 不是一个选项?
  • 我试过在 gradle.properties 中设置它(见编辑),但也许我做得不对。

标签: java spring spring-boot out-of-memory


【解决方案1】:
  • 有一些 Gradle 属性可以稍微加快构建速度。

     org.gradle.parallel=true
     org.gradle.daemon=true
     org.gradle.jvmargs=-Xms256m -Xmx1024m
    
  • 如果您想为您的 tomcat 添加更多内存,您应该在您的 tomcat 目录下的bin/ 下的setenv.sh 脚本中更改以下行:

    export CATALINA_OPTS="$CATALINA_OPTS -Xms512m"
    export CATALINA_OPTS="$CATALINA_OPTS -Xmx8192m"
    export CATALINA_OPTS="$CATALINA_OPTS -XX:MaxPermSize=256m"
    

【讨论】:

  • (在您编辑之前)好的,我认为正在解析它,因为我收到一个构建错误,表明它是无效的最大堆大小,对于我尝试的所有内容
  • 我是否需要在 args 周围加上引号?而且,考虑到我要上传的大文件,我相信我需要超过 1024 兆。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-07-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-04-08
  • 2016-03-18
  • 1970-01-01
相关资源
最近更新 更多