diff --git a/java/bin/java-dynamic-memory-opts.sh b/java/bin/java-dynamic-memory-opts.sh index 8fa3e991..8b2289a5 100755 --- a/java/bin/java-dynamic-memory-opts.sh +++ b/java/bin/java-dynamic-memory-opts.sh @@ -18,7 +18,14 @@ die () { # Required env vars validations [ -z "${MEM_JAVA_PERCENT}" ] && die "Need to set env var MEM_JAVA_PERCENT" -MEM_TOTAL_KB=$(cat /proc/meminfo | grep MemTotal | awk '{print $2}') +MEM_TOTAL_KB=0 + +CGROUP_LIMIT=$(cat /sys/fs/cgroup/memory/memory.limit_in_bytes) +if [ $CGROUP_LIMIT -ne 9223372036854771712 ] && [ $CGROUP_LIMIT -gt 0 ] ; then + MEM_TOTAL_KB=$CGROUP_LIMIT/1000 +else + MEM_TOTAL_KB=$(cat /proc/meminfo | grep MemTotal | awk '{print $2}') +fi MEM_JAVA_KB=$((${MEM_TOTAL_KB} * ${MEM_JAVA_PERCENT} / 100)) [ -z "${MEM_JAVA}" ] && export MEM_JAVA="${MEM_JAVA_KB}k"