When deploying a Java application to Cloud Foundry the Java memory settings for the application are decided based on the configured memory weighting during staging. This means that, unlike other apps, if the application is scaled to give it more memory it needs to be restaged it to get updated Java memory settings. This has now been improved with an improved memory calculator written by Steve Powell[2]. The Memory Calculator[1] will be run during every application start to ensure the application gets up-to-date memory settings, its output is shown during staging.

-----> Downloading Open JDK Like Memory Calculator 1.1.1_RELEASE from https://download.run.pivotal.io/memory-calculator/trusty/x86_64/memory-calculator-1.1.1_RELEASE (found in cache)
       Memory Settings: -XX:MaxMetaspaceSize=64M -XX:MetaspaceSize=64M -Xss995K -Xmx382293K -Xms382293K

Then scaling the application to double the memory will result in new memory settings without having to restage the application.

cf scale my-application -m 1G

-Xmx768M -Xms768M -XX:MaxMetaspaceSize=104857K -XX:MetaspaceSize=104857K -Xss1M

This new feature is currently available on the master branch of the buildpack [3] and will be released in due course.


[1] https://github.com/cloudfoundry/java-buildpack-memory-calculator
[2] https://github.com/Zteve
[3] https://github.com/cloudfoundry/java-buildpack

Christopher Frost - GoPivotal UK