#!/bin/bash
#设置初始参数,最好全部用引号包含,避免出现特殊字符串导致的断片
:<<!
JAVA_OPTS="-server -Xmx4g -Xms4g -Xmn256m -XX:MaxMetaspaceSize=128m -Xss256k -XX:+DisableExplicitGC  -XX:+UseConcMarkSweepGC -XX:+CMSParallelRemarkEnabled -XX:LargePageSizeInBytes=128m -XX:+UseFastAccessorMethods -XX:+UseCMSInitiatingOccupancyOnly -XX:CMSInitiatingOccupancyFraction=70 -Duser.timezone=GMT+8"
-server//服务器模式
-XX:MaxMetaspaceSize=128m 元空间分配，不限制会不断占用操作系统的剩余量
-Xmx2g //JVM最大允许分配的堆内存，按需分配
-Xms2g //JVM初始分配的堆内存，一般和Xmx配置成一样以避免每次gc后JVM重新分配内存。
-Xmn256m //年轻代内存大小，整个JVM内存=年轻代 + 年老代 + 持久代 
-Xss512k //设置每个线程的堆栈大小
-XX:+DisableExplicitGC //忽略手动调用GC, System.gc()的调用就会变成一个空调用，完全不触发GC
-Duser.timezone=GMT+8 //设定GMT区域，避免CentOS坑爹的时区设置
!
#脚本只要发生错误，就终止执行
set -e
#在运行结果之前，先输出执行的那一行命令
#set -x
jvmxms=2g
jvmxmx=2g
jvmmaxmetaspacesize=128m
if [ $JVM_XMX ]; then
    jvmxmx=$JVM_XMX
fi
if [ $JVM_XMS ]; then
    jvmxms=$JVM_XMS
fi
if [ $JVM_MAXMETASPACESIZE ]; then
    jvmmaxmetaspacesize=$JVM_MAXMETASPACESIZE
fi
JVM_OPTS=" -server -Xms$jvmxms -Xmx$jvmxmx  -XX:MaxMetaspaceSize=$jvmmaxmetaspacesize  -XX:+DisableExplicitGC -Duser.timezone=GMT+8 -Dfile.encoding=UTF-8 "