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:
JAVA_OPTS
variable in the enviroment configuration in the EB console with the value -Xms512m -Xmx896m
.Procfile
in the project root folder what contains the following line: web: java -jar <relative-path-to-jar> -Xms512m -Xmx896m
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.
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!