diff --git a/java/target/env-default-rules.sh b/java/target/env-default-rules.sh index 1ebb1dfa9e1..e519eeaf44f 100755 --- a/java/target/env-default-rules.sh +++ b/java/target/env-default-rules.sh @@ -90,3 +90,16 @@ fi if [ -z "${SERVER_STARTUP_NOTIFY}" ]; then export SERVER_STARTUP_NOTIFY=simon.marcel.pamies@sap.com fi +if [ -z "${MEMORY}" ]; then + MINIMUM_MEMORY_IN_MB=2000 + MEM_TOTAL=`cat /proc/meminfo | grep MemTotal | awk '{print $2;}'` + MEMORY_FOR_APPLICATIONS=$(( ${MEM_TOTAL} / 1024 * 3 / 4 - 1500 / 1 )) + if [ -z "${TOTAL_MEMORY_SIZE_FACTOR}" ]; then + # All of the MEMORY_FOR_APPLICATIONS goes to this application + MEMORY_PER_INSTANCE_IN_MB=$(( ${MEMORY_FOR_APPLICATIONS} < ${MINIMUM_MEMORY_IN_MB} ? ${MINIMUM_MEMORY_IN_MB} : ${MEMORY_FOR_APPLICATIONS} )) + else + # Only a fraction (1/${TOTAL_MEMORY_SIZE_FACTOR}) goes to this application: + MEMORY_PER_INSTANCE_IN_MB=$(( ${MEMORY_FOR_APPLICATIONS} / ${TOTAL_MEMORY_SIZE_FACTOR} < ${MINIMUM_MEMORY_IN_MB} ? ${MINIMUM_MEMORY_IN_MB} : ${MEMORY_FOR_APPLICATIONS} / ${TOTAL_MEMORY_SIZE_FACTOR} )) + fi + export MEMORY="${MEMORY_PER_INSTANCE_IN_MB}m" +fi \ No newline at end of file diff --git a/java/target/refreshInstance.sh b/java/target/refreshInstance.sh index ebb4cf54b4c..2422149f478 100755 --- a/java/target/refreshInstance.sh +++ b/java/target/refreshInstance.sh @@ -283,8 +283,7 @@ auto_install () # make sure to reload data, this time including defaults from release's env.sh, environment settings and user data source `pwd`/env.sh if [ -z $MEMORY ]; then - # Compute a default amount of memory based on available physical RAM and the number of applications, with a minimum of 2GB: - NUMBER_OF_INSTANCES=`echo "$JAVA_START_INSTANCES" | wc -w` + # Compute a default amount of memory based on available physical RAM, with a minimum of 2GB: MINIMUM_MEMORY_IN_MB=2000 MEM_TOTAL=`cat /proc/meminfo | grep MemTotal | awk '{print $2;}'` MEMORY_COMPUTED=$(( ${MEM_TOTAL} / 1024 * 3 / 4 - 1500 / 1 ))