javaamazon-web-servicesspring-bootjvmheap-size

Not able to set JVM heap size on AWS Elastic Beanstalk Java SE Platform


I have a Spring Boot app deployend on Elastic Beanstalk using a single EC2 t2.micro instance (1GB RAM).

I need to increase my app's JVM Heap size but I'm not being able to do so. The things I have tried are:

What else could I try?

Note: To check the JVM heap size of the running app I ssh into the instance and use the jstat command as this answer describes. Calculating the max value always gives me 256MB which is the dafault.


Solution

  • I solved it!

    My Spring Boot project was a multi-module one:

    One of the modules (the one's jar I was deploying) imported the other ones. My mistake was that I was putting the Procfile in the root of the base module. Also in the config.yaml file I was putting the following lines:

    deploy:
        artifact: module1/target/app.jar
    

    So the command eb deploy wasn't taking in account the Procfile.

    The solution was to move the .elasticbeanstalk folder into the module1 folder, removing the lines I said above from the config.yaml and to add a Procfile in the root of module1 with the following line:

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

    The final project structure was:

    Hope it helps somebody!