代码之家  ›  专栏  ›  技术社区  ›  Francisco Hanna Mackay

无法在AWS Elastic Beanstalk Java SE平台上设置JVM堆大小

  •  1
  • Francisco Hanna Mackay  · 技术社区  · 8 年前

    我在Elastic Beanstalk上有一个使用单个EC2 t2的Spring Boot应用程序deployend。微型实例(1GB RAM)。

    我需要增加我的应用程序的JVM堆大小,但我不能这样做。我尝试过的是:

    • 设置a JAVA_OPTS EB控制台环境配置中的变量,值为 -Xms512m -Xmx896m .
    • 使用部署应用程序 Procfile 在项目根文件夹中,包含以下行的内容: web: java -jar <relative-path-to-jar> -Xms512m -Xmx896m

    我还能尝试什么?

    注意:要将正在运行的应用程序的JVM堆大小检查到实例中,请使用 jstat 命令组件 this answer 描写。计算最大值总是给我256MB,这是一个错误。

    2 回复  |  直到 8 年前
        1
  •  1
  •   Francisco Hanna Mackay    8 年前

    我解决了!

    我的Spring Boot项目是一个多模块项目:

    • base\u模块(POM型)
      • .弹性豆茎
        • 配置。亚马尔
      • module1(delpyed模块。在pom.xml中导入module2和module3)
      • 模2
      • 模块3
      • Procfile程序文件

    其中一个模块(我正在部署的一个jar)导入了其他模块。我的错误是我把 Procfile 在基本模块的根目录中。也在 config.yaml 文件中我放了以下几行:

    deploy:
        artifact: module1/target/app.jar
    

    所以命令 eb deploy 没有考虑到 Procfile程序文件 .

    解决方案是移动 .elasticbeanstalk 将文件夹放入 module1 文件夹,从 配置。亚马尔 并添加 Procfile程序文件 在根中 模块1 使用以下行:

    web: java -jar target/app.jar -Xmx896M
    

    最终项目结构为:

    • base\u模块(POM型)
      • module1(delpyed模块。在pom.xml中导入module2和module3)
        • .弹性豆茎
          • 配置。亚马尔
        • src公司
        • 目标
      • Procfile程序文件
      • 模2
      • 模块3

    希望它能帮助别人!

        2
  •  0
  •   Shruti Chadha    8 年前

    创建包含应用程序的zip文件。jar和Proc文件。在elasticbeanstalk中上载并部署此内容。

    在Procfile中写入以下行 web:java-jar应用程序。jar-Xmx896M