Skip to content

Commit d0f570d

Browse files
author
Dmitry Tsurko
authored
Merge pull request #2 from jelastic-jps/JE-60275
JE-60275 [java-memory-agent] Add the ability to set XMS as a percentage
2 parents d425117 + 496a040 commit d0f570d

File tree

1 file changed

+19
-13
lines changed

1 file changed

+19
-13
lines changed

scripts/memoryConfig.sh

+19-13
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ XMX_DEF=${XMX_DEF:-AUTO}
55
#if auto then set XMX = 80% * total available RAM
66
XMX_DEF_PERCENT=${XMX_DEF_PERCENT:-80}
77
XMS_DEF=${XMS_DEF:-32M}
8+
XMS_DEF_PERCENT=${XMS_DEF_PERCENT:-AUTO}
89
XMINF_DEF=${XMINF_DEF:-0.1}
910
XMAXF_DEF=${XMAXF_DEF:-0.3}
1011
GC_DEF=${GC_DEF:-G1GC}
@@ -36,33 +37,38 @@ function normalize {
3637

3738
ARGS=("$@")
3839

40+
memory_total=`free -m | grep Mem | awk '{print $2}'`
41+
#checking cgroup memory limit in container https://goo.gl/gnF8m9
42+
CGROUP_MEMORY_LIMIT="/sys/fs/cgroup/memory/memory.limit_in_bytes"
43+
if [ -f $CGROUP_MEMORY_LIMIT ]; then
44+
cgroup_limit=$((`cat $CGROUP_MEMORY_LIMIT`/1024/1024))
45+
#choosing the smaller value
46+
memory_total=$(( memory_total < cgroup_limit ? memory_total : cgroup_limit ))
47+
fi
48+
3949
if ! echo ${ARGS[@]} | grep -q "\-Xms[0-9]\+."
4050
then
51+
if [[ "X${XMS_DEF_PERCENT^^}" == "XAUTO" ]] ; then
4152
[ -z "$XMS" ] && { XMS="-Xms$XMS_DEF"; }
42-
ARGS=("$(normalize $XMS -Xms)" "${ARGS[@]}");
53+
else
54+
[[ $XMS_DEF_PERCENT > $XMX_DEF_PERCENT ]] && XMS_DEF_PERCENT=$XMX_DEF_PERCENT
55+
let XMS=memory_total*XMS_DEF_PERCENT/100
56+
XMS="-Xms${XMS}M"
57+
fi
58+
ARGS=("$(normalize $XMS -Xms)" "${ARGS[@]}");
4359
fi
4460

4561
if ! echo ${ARGS[@]} | grep -q "\-Xmx[0-9]\+."
4662
then
4763
[ -z "$XMX" ] && {
48-
[ "$XMX_DEF" == "AUTO" ] && {
49-
memory_total=`free -m | grep Mem | awk '{print $2}'`
50-
51-
#checking cgroup memory limit in container https://goo.gl/gnF8m9
52-
CGROUP_MEMORY_LIMIT="/sys/fs/cgroup/memory/memory.limit_in_bytes"
53-
if [ -f $CGROUP_MEMORY_LIMIT ]; then
54-
cgroup_limit=$((`cat $CGROUP_MEMORY_LIMIT`/1024/1024))
55-
#choosing the smaller value
56-
memory_total=$(( memory_total < cgroup_limit ? memory_total : cgroup_limit ))
57-
fi
58-
64+
[ "$XMX_DEF" == "AUTO" ] && {
5965
let XMX=memory_total*XMX_DEF_PERCENT/100
6066
XMX="-Xmx${XMX}M"
6167
} || {
6268
XMX="-Xmx${XMX_DEF}"
6369
}
6470
}
65-
ARGS=("$(normalize $XMX -Xmx)" "${ARGS[@]}");
71+
ARGS=("$(normalize $XMX -Xmx)" "${ARGS[@]}");
6672
else
6773
XMX=`echo ${ARGS[@]} | grep -o "\-Xmx[0-9]\+."`
6874
fi

0 commit comments

Comments
 (0)