@@ -19,6 +19,8 @@ G1PERIODIC_LT_DEF=$(echo $CPU_COUNT*$GC_SYS_LOAD_THRESHOLD_RATE | bc 2>/dev/null
19
19
G1PERIODIC_LT_DEF=${G1PERIODIC_LT_DEF:- 0.3}
20
20
G1PERIODIC_GC_INTERVAL=${G1PERIODIC_GC_INTERVAL:- 900k}
21
21
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
22
24
23
25
function normalize {
24
26
var=" $( echo ${1} | tr ' [A-Z]' ' [a-z]' ) "
61
63
}
62
64
}
63
65
ARGS=(" $( normalize $XMX -Xmx) " " ${ARGS[@]} " );
64
- else
66
+ else
65
67
XMX=` echo ${ARGS[@]} | grep -o " \-Xmx[0-9]\+." `
66
68
fi
67
69
83
85
ARGS=(" $( normalize $XMAXF -Xmaxf) " " ${ARGS[@]} " );
84
86
fi
85
87
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" )
87
90
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 ] ] && {
89
92
JAVA_VERSION=$( echo $JAVA_VERSION | awk ' {print $3}' )
90
93
JAVA_MAJOR_VERSION=$( echo $JAVA_VERSION | awk -F ' [._-]' ' {print $1}' ) ;
91
94
JAVA_MINOR_VERSION=$( echo $JAVA_VERSION | awk -F ' [._-]' ' {print $2}' ) ;
@@ -95,16 +98,18 @@ JAVA_VERSION=${JAVA_VERSION//\"/}
95
98
JAVA_MINOR_VERSION=$( echo $JAVA_VERSION | awk -F ' [._-]' ' {print $3}' ) ;
96
99
JAVA_UPDATE_VERSION=$( echo $JAVA_VERSION | awk -F ' [._-]' ' {print $4}' ) ;
97
100
}
98
-
101
+
102
+ grep -qE ' OpenJ9' <<< " $JAVA_STRING" && ADD_J_AGENT=false
103
+
99
104
# checking the need of MaxPermSize param
100
105
if ! echo ${ARGS[@]} | grep -q " \-XX:MaxPermSize"
101
106
then
102
- [ -z " $MAXPERMSIZE " ] && {
107
+ [[ -z " $MAXPERMSIZE " ] ] && {
103
108
# if java version <= 7 then configure MaxPermSize otherwise ignore
104
- [ $JAVA_MAJOR_VERSION -le 7 ] && {
109
+ [[ $JAVA_MAJOR_VERSION -le 7 ] ] && {
105
110
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; }
108
113
MAXPERMSIZE=" -XX:MaxPermSize=${MAXPERMSIZE_VALUE} M" ;
109
114
}
110
115
}
114
119
115
120
if ! echo ${ARGS[@]} | grep -q " \-XX:+Use.*GC"
116
121
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" ;
120
125
} || {
121
126
GC=" -XX:+Use$GC_DEF " ;
122
127
}
159
164
ARGS=(" -XX:G1PeriodicGCSystemLoadThreshold=${G1PERIODIC_GC_SYS_LOAD_THRESHOLD} " " ${ARGS[@]} " );
160
165
fi
161
166
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
164
170
[ -z " $AGENT_DIR " ] && AGENT_DIR=$( dirname $( readlink -f " $0 " ) )
165
171
AGENT=" $AGENT_DIR /jelastic-gc-agent.jar"
166
172
[ ! -f $AGENT ] && AGENT=" $AGENT_DIR /lib/jelastic-gc-agent.jar"
167
173
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
168
179
fi
169
180
fi
170
181
}
0 commit comments