JVM调优开启开启ZGC参数

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调优总结

-XX:HeapDumpPath设置异常信息输出,dump文件的产生以及执行shell脚本

idea中设置JVM参数的两种方式

JVM垃圾回收——ZGC垃圾收集器

你可能感兴趣的:(虚拟机,java,jvm,开发语言,java)