Skip to content

Commit e8df9e5

Browse files
author
Dmitry Tsurko
committed
JE-50848 [java-memory-agent] replace jelastic-gc-agent for OpenJ9
1 parent 472d7b8 commit e8df9e5

File tree

1 file changed

+24
-13
lines changed

1 file changed

+24
-13
lines changed

scripts/memoryConfig.sh

+24-13
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,8 @@ G1PERIODIC_LT_DEF=$(echo $CPU_COUNT*$GC_SYS_LOAD_THRESHOLD_RATE | bc 2>/dev/null
1919
G1PERIODIC_LT_DEF=${G1PERIODIC_LT_DEF:-0.3}
2020
G1PERIODIC_GC_INTERVAL=${G1PERIODIC_GC_INTERVAL:-900k}
2121
G1PERIODIC_GC_SYS_LOAD_THRESHOLD=${G1PERIODIC_GC_SYS_LOAD_THRESHOLD:-${G1PERIODIC_LT_DEF}}
22+
AGENT_OPTIONS=(-XX:+IdleTuningCompactOnIdle -XX:+IdleTuningGcOnIdle -XX:IdleTuningMinIdleWaitTime=180 -Xjit:waitTimeToEnterDeepIdleMode=50000)
23+
ADD_J_AGENT=true
2224

2325
function normalize {
2426
var="$(echo ${1} | tr '[A-Z]' '[a-z]')"
@@ -61,7 +63,7 @@ then
6163
}
6264
}
6365
ARGS=("$(normalize $XMX -Xmx)" "${ARGS[@]}");
64-
else
66+
else
6567
XMX=`echo ${ARGS[@]} | grep -o "\-Xmx[0-9]\+."`
6668
fi
6769

@@ -83,9 +85,10 @@ then
8385
ARGS=("$(normalize $XMAXF -Xmaxf)" "${ARGS[@]}");
8486
fi
8587

86-
JAVA_VERSION=$( env -i ${JAVA_ORIG:-java} -version 2>&1 | grep version)
88+
JAVA_STRING=$( env -i ${JAVA_ORIG:-java} -version 2>&1 )
89+
JAVA_VERSION=$( grep version <<< "$JAVA_STRING" )
8790
JAVA_VERSION=${JAVA_VERSION//\"/}
88-
[ $(echo $JAVA_VERSION | awk '{ print $3 }' | awk -F '[._-]' '{print $1}') -ge 9 ] && {
91+
[[ $(echo $JAVA_VERSION | awk '{ print $3 }' | awk -F '[._-]' '{print $1}') -ge 9 ]] && {
8992
JAVA_VERSION=$(echo $JAVA_VERSION | awk '{print $3}')
9093
JAVA_MAJOR_VERSION=$(echo $JAVA_VERSION | awk -F '[._-]' '{print $1}');
9194
JAVA_MINOR_VERSION=$(echo $JAVA_VERSION | awk -F '[._-]' '{print $2}');
@@ -95,16 +98,18 @@ JAVA_VERSION=${JAVA_VERSION//\"/}
9598
JAVA_MINOR_VERSION=$(echo $JAVA_VERSION | awk -F '[._-]' '{print $3}');
9699
JAVA_UPDATE_VERSION=$(echo $JAVA_VERSION | awk -F '[._-]' '{print $4}');
97100
}
98-
101+
102+
grep -qE 'OpenJ9' <<< "$JAVA_STRING" && ADD_J_AGENT=false
103+
99104
#checking the need of MaxPermSize param
100105
if ! echo ${ARGS[@]} | grep -q "\-XX:MaxPermSize"
101106
then
102-
[ -z "$MAXPERMSIZE" ] && {
107+
[[ -z "$MAXPERMSIZE" ]] && {
103108
#if java version <= 7 then configure MaxPermSize otherwise ignore
104-
[ $JAVA_MAJOR_VERSION -le 7 ] && {
109+
[[ $JAVA_MAJOR_VERSION -le 7 ]] && {
105110
let MAXPERMSIZE_VALUE=$XMX_VALUE/10;
106-
[ $MAXPERMSIZE_VALUE -ge 64 ] && {
107-
[ $MAXPERMSIZE_VALUE -gt 256 ] && { MAXPERMSIZE_VALUE=256; }
111+
[[ $MAXPERMSIZE_VALUE -ge 64 ]] && {
112+
[[ $MAXPERMSIZE_VALUE -gt 256 ]] && { MAXPERMSIZE_VALUE=256; }
108113
MAXPERMSIZE="-XX:MaxPermSize=${MAXPERMSIZE_VALUE}M";
109114
}
110115
}
@@ -114,9 +119,9 @@ fi
114119

115120
if ! echo ${ARGS[@]} | grep -q "\-XX:+Use.*GC"
116121
then
117-
[ -z "$GC" ] && {
118-
[ $JAVA_MAJOR_VERSION -le 7 ] && {
119-
[ "$XMX_VALUE" -ge "$G1_J7_MIN_RAM_THRESHOLD" ] && GC="-XX:+UseG1GC" || GC="-XX:+UseParNewGC";
122+
[[ -z "$GC" ]] && {
123+
[[ $JAVA_MAJOR_VERSION -le 7 ]] && {
124+
[[ "$XMX_VALUE" -ge "$G1_J7_MIN_RAM_THRESHOLD" ]] && GC="-XX:+UseG1GC" || GC="-XX:+UseParNewGC";
120125
} || {
121126
GC="-XX:+Use$GC_DEF";
122127
}
@@ -159,12 +164,18 @@ fi
159164
ARGS=("-XX:G1PeriodicGCSystemLoadThreshold=${G1PERIODIC_GC_SYS_LOAD_THRESHOLD}" "${ARGS[@]}");
160165
fi
161166
else
162-
if ! echo ${ARGS[@]} | grep -q "\-javaagent\:[^ ]*jelastic\-gc\-agent\.jar"
163-
then
167+
if [ "x$ADD_J_AGENT" == "xtrue" ]; then
168+
if ! echo ${ARGS[@]} | grep -q "\-javaagent\:[^ ]*jelastic\-gc\-agent\.jar"
169+
then
164170
[ -z "$AGENT_DIR" ] && AGENT_DIR=$(dirname $(readlink -f "$0"))
165171
AGENT="$AGENT_DIR/jelastic-gc-agent.jar"
166172
[ ! -f $AGENT ] && AGENT="$AGENT_DIR/lib/jelastic-gc-agent.jar"
167173
ARGS=("-javaagent:$AGENT=period=$FULL_GC_PERIOD,debug=$FULL_GC_AGENT_DEBUG" "${ARGS[@]}");
174+
fi
175+
else
176+
for i in ${AGENT_OPTIONS[@]}; do
177+
echo ${ARGS[@]} | grep -q '\'${i%=*} || ARGS=($i "${ARGS[@]}");
178+
done
168179
fi
169180
fi
170181
}

0 commit comments

Comments
 (0)