jdk启动脚本
#!/bin/bash
PATH=${PATH}:/opt/HIEXSORT64/bin
LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:/opt/HIEXSORT64/lib
NLSPATH=${NLSPATH}:/opt/HIEXSORT64/%L/%N.cat
export PATH LD_LIBRARY_PATH NLSPATH
BATCH_ROOT_PATH=$(pwd)
# set Env
export BATCH_ROOT_PATH="${BATCH_ROOT_PATH}"
# 创建 logs 文件夹
[ ! -d $BATCH_ROOT_PATH/logs ] && mkdir -p $BATCH_ROOT_PATH/logs
MAIN_JAR="${BATCH_ROOT_PATH}/batch-1.0.jar"
DEPS="${BATCH_ROOT_PATH}/lib/*"
#java -cp "${MAIN_JAR}:${DEPS}" org.springframework.boot.loader.JarLauncher
java -server -Xms2048m -Xmx8096m -Xmn2048m -Xss4m -XX:+UseZGC -XX:ZCollectionInterval=120 -XX:ZAllocationSpikeTolerance=4 -XX:-ZProactive -Xlog:safepoint=trace,classhisto*=trace,age*=info,gc*=info:file=logs/gc-%t.log:time,level,tid,tags:filesize=50M -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=logs/errorDump.hprof -cp "${MAIN_JAR}:${DEPS}" org.springframework.boot.loader.JarLauncher
#-server
#Xms:堆内存的初始大小,默认为物理内存的1/64
#Xmx:堆内存的最大大小,默认为物理内存的1/4
#Xmn:堆内新生代的大小(通过这个值也可以得到老生代的大小:-Xmx减去-Xmn)
#Xss:设置每个线程可使用的内存大小,即栈的大小
#开启ZGC
#-XX:+UseZGC
#GC周期之间的最大间隔(单位秒)
#-XX:ZCollectionInterval=120
#官方的解释是 ZGC 的分配尖峰容忍度,数值越大越早触发GC
#-XX:ZAllocationSpikeTolerance=4
#关闭主动GC周期,在主动回收模式下,ZGC 会在系统空闲时自动执行垃圾回收,以减少垃圾回收在应用程序忙碌时所造成的影响。如果未指定此参数(默认情况),ZGC 会在需要时(即堆内存不足以满足分配请求时)执行垃圾回收。
#-XX:-ZProactive
#GC日志
#-Xlog:safepoint=trace,classhisto*=trace,age*=info,gc*=info:file=/opt/logs/gc-%t.log:time,level,tid,tags:filesize=50M
#发生OOM时dump内存日志
#-XX:+HeapDumpOnOutOfMemoryError
#-XX:HeapDumpPath=/opt/apps/errorDump.hprof
主要是在原来的启动参数上,添加开启参数
原来的启动参数
java -cp "${MAIN_JAR}:${DEPS}" org.springframework.boot.loader.JarLauncher
添加参数
java -server -Xms2048m -Xmx8096m -Xmn2048m -Xss4m -XX:+UseZGC -XX:ZCollectionInterval=120 -XX:ZAllocationSpikeTolerance=4 -XX:-ZProactive -Xlog:safepoint=trace,classhisto*=trace,age*=info,gc*=info:file=logs/gc-%t.log:time,level,tid,tags:filesize=50M -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=logs/errorDump.hprof -cp "${MAIN_JAR}:${DEPS}" org.springframework.boot.loader.JarLauncher
也可以采用像eclipse下的eclipse.ini文件一样,但我不知道怎么添加启动,就直接参数启动了。
参考资料:
-Xms -Xmx -Xmn -Xss各个参数意思和JVM调优总结