jvm企业级OPT参数命令设置参考

1 篇文章 0 订阅
1 篇文章 0 订阅

jvm企业级OPT参数命令设置参考

设置禁用IPv6

-Djava.net.preferIPv4Stack=true 

linux下处理图片时需加上参数

-Djava.awt.headless=true

添加应用名称

-DappName=$SERVER_NAME

添加远程调试debug参数

JAVA_DEBUG_OPTS=""
if [ "$1" = "debug" ]; then
    addressPort=4100
    if [ -n "$2" ]; then
       addressPort=$2
    fi
    JAVA_DEBUG_OPTS=" -Xdebug -Xnoagent -Djava.compiler=NONE -Xrunjdwp:transport=dt_socket,address=${addressPort},server=y,suspend=n "
fi

指定jvm启动初始化内存及最大化内存,新生代预估上限的默认值 ,每个线程栈大小,堆溢出log目录

JAVA_MEM_SIZE_OPTS="-Xmx${JVM_MEM_XMX} -Xms${JVM_MEM_XMS} -XX:MaxNewSize=${JVM_MEM_NEW_SIZE}  -Xss256k -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=$LOGS_DIR"

设置gc参数

CUR_DATE=`date +%Y%m%d`
GC_LOGFILE="$LOGS_DIR/gc_$CUR_DATE.log"
if [ ! -f "$GC_LOGFILE" ]; then
    touch $GC_LOGFILE
fi
JAVA_MEM_GC_OPTS="-verbose:gc -XX:+PrintGCDetails -XX:+PrintGCTimeStamps -XX:+PrintHeapAtGC -Xloggc:$GC_LOGFILE"

备注:
加入-XX:+PrintGC -XX:+PrintGCDetails -XX:+PrintGCTimeStamps -XX:+PrintGCApplicationStoppedTime,按照参数的顺序分别输出GC的简要信息,GC的详细信息、GC的时间信息及GC造成的应用暂停的时间。

添加环境参数

ENV_PROPERTIES_OPTS="--spring.profiles.active=$ENV_NAME"

根据安装jvm的32bit或64bit版本,则设置相应的垃圾回收机制

BITS=`java -version 2>&1 | grep -i 64-bit`,
if [ -n "$BITS" ]; then
    JAVA_MEM_OPTS=" -server $JAVA_MEM_SIZE_OPTS -XX:+DisableExplicitGC -XX:+UseConcMarkSweepGC -XX:+CMSParallelRemarkEnabled -XX:+UseCMSCompactAtFullCollection -XX:CMSFullGCsBeforeCompaction=3 -XX:LargePageSizeInBytes=128m -XX:+UseFastAccessorMethods -XX:+UseCMSInitiatingOccupancyOnly -XX:CMSInitiatingOccupancyFraction=70 "
else
    JAVA_MEM_OPTS=" -server $JAVA_MEM_SIZE_OPTS -XX:SurvivorRatio=2 -XX:+UseParallelGC "
fi

备注:-XX:NewRatio=2,新生代和年老代的堆内存占用比例, 例如2表示新生代占年老代的1/2,占整个堆内存的1/3
	-XX:SurvivorRatio:设置两个survivor区与eden区比例。一个survivor区占据年轻代1/4
	-XX:+UseParallelGC:并行垃圾回收机制
	-XX:+UseConcMarkSweepGC :并发垃圾回收机制
	-XX:+DisableExplicitGC:JVM加上该启动参数,那么代码中调用System.gc()没有任何效果
	-XX:+UseCMSCompactAtFullCollection:使用并发收集器时,开启对年老代的压缩.CMS是不会整理堆碎片的,因此为了防止堆碎片引起full gc,通过会开启CMS阶段进行合并碎片选项。
    -XX:CMSFullGCsBeforeCompaction=3:上面配置开启的情况下,这里设置多少次Full GC后,对年老代进行压缩
    -XX:+CMSParallelRemarkEnabled:降低标记停顿,主要是为了减少第二次暂停的时间,开启并行remark
    -XX:LargePageSizeInBytes=128m :设置堆内存的内存页大小,默认4m
    -XX:+UseFastAccessorMethods:优化原始类型的getter方法性能
    -XX:+UseCMSInitiatingOccupancyOnly:与下面这两个设置配合使用,一般用于『降低CMS GC频率或者增加频率、减少GC时长
    -XX:CMSInitiatingOccupancyFraction=70:GC后,如果发现空闲堆内存占到整个预估上限值的70%,则收缩预估上限值

加载lib 扩展jar包

-Dloader.path=$LIBS_FILE

其他参考

指定disconf配置中心文件加载:
JAVA_PROPERTIES_OPTS="-Ddisconf.conf=$DISCONF_FILE"
指定jmx方式:
if [ "$1" = "jmx" ]; then
    if [ -n "$2" ]; then
       JAVA_JMX_OPTS="$JAVA_JMX_OPTS -Djava.rmi.server.hostname=$2"
    fi
    if [ -n "$3" ]; then
       JAVA_JMX_OPTS="$JAVA_JMX_OPTS -Dcom.sun.management.jmxremote.port=$3"
    fi
    JAVA_JMX_OPTS="$JAVA_JMX_OPTS -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.ssl=false"
fi

启动jvm jar命令

启动命令如下:
nohup java -Dloader.path=$LIBS_FILE -jar $JAVA_OPTS   $FileName $ENV_PROPERTIES_OPTS $JAVA_MEM_OPTS $JAVA_MEM_GC_OPTS $JAVA_DEBUG_OPTS $JAVA_JMX_OPTS  > $STDOUT_FILE 2>&1 &
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值