jar启动命令参数

# 启动命令

nacos为例,nacos官方的脚本文件提供的启动命令如下:

java -jar app.jar  -server -Xms2g -Xmx2g -Xmn1g -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=320m -XX:-OmitStackTraceInFastThrow -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=${BASE_DIR}/logs/java_heapdump.hprof -XX:-UseLargePages
1

JDK版本大于9:

-Xlog:gc*:file=${BASE_DIR}/logs/nacos_gc.log:time,tags:filecount=10,filesize=100m
1

JDK版本小于等于9:

-XX:+UseConcMarkSweepGC -XX:+UseCMSCompactAtFullCollection -XX:CMSInitiatingOccupancyFraction=70 -XX:+CMSParallelRemarkEnabled -XX:SoftRefLRUPolicyMSPerMB=0 -XX:+CMSClassUnloadingEnabled -XX:SurvivorRatio=8 
-Xloggc:${BASE_DIR}/logs/nacos_gc.log -verbose:gc -XX:+PrintGCDetails -XX:+PrintGCDateStamps -XX:+PrintGCTimeStamps -XX:+UseGCLogFileRotation -XX:NumberOfGCLogFiles=10 -XX:GCLogFileSize=100M"

1
2
3

# 参数说明

  • -server:指定JVM运行模式为server模式。

  • -Xms2g:指定JVM初始堆内存大小为2G

  • -Xmx2g:指定JVM最大堆内存大小为2G

  • -Xmn1g:指定JVM新生代内存大小为1G

  • -XX:MetaspaceSize=128m:指定JVM元空间初始大小为128M

  • -XX:MaxMetaspaceSize=320m:指定JVM元空间最大大小为320M

  • -XX:-OmitStackTraceInFastThrow:禁用JVM在快速抛出异常时省略堆栈信息。

  • -XX:+HeapDumpOnOutOfMemoryError:当JVM发生OOM时,生成堆转储文件。

  • -XX:HeapDumpPath=${BASE_DIR}/logs/java_heapdump.hprof:指定堆转储文件的路径。

  • -XX:-UseLargePages:禁用大页内存。

  • -Xlog:gc*:file=${BASE_DIR}/logs/nacos_gc.log:time,tags:filecount=10,filesize=100m

    • -Xlog:gc*表示记录所有的垃圾收集活动。

    • file=${BASE_DIR}/logs/nacos_gc.log 指定日志目录。

    • time,tags表示在每条日志消息中包含时间戳和标签。

    • filecount=10,filesize=100m表示日志文件的最大数量为10,每个日志文件的最大大小为100MB。当日志文件达到这个大小时,Java会关闭当前的日志文件,并打开一个新的日志文件。

  • -XX:+UseConcMarkSweepGC:指定JVM使用CMS垃圾收集器。

  • -XX:+UseCMSCompactAtFullCollection:指定CMS在进行Full GC后进行内存碎片整理。

  • -XX:CMSInitiatingOccupancyFraction=70:指定CMS在老年代使用率达到70%时触发CMS GC

  • -XX:+CMSParallelRemarkEnabled:在CMSremark阶段并行标记。

  • -XX:SoftRefLRUPolicyMSPerMB=0:设置软引用的清理策略,0表示最大的敏感性,即一旦发生GC,所有软引用对象都会被清理掉。

  • -XX:+CMSClassUnloadingEnabled:启用CMS类卸载。

  • -XX:SurvivorRatio=8:设置Eden区和Survivor区的比例为8:1

  • -Xloggc:${BASE_DIR}/logs/nacos_gc.log:指定GC日志文件的路径。

  • -verbose:gc:打印GC日志。

  • -XX:+PrintGCDetails:打印GC的详细信息。

  • -XX:+PrintGCDateStamps:打印GC的时间戳。

  • -XX:+UseGCLogFileRotation:启用GC日志文件的轮转。

# 指定配置文件参数

--spring.profiles.active=local

# 或者
-Dspring.profiles.active=local
1
2
3
4

# 脚本

# 启动脚本

#!/bin/bash

JAR_FILE=$1
JAVA_OPTS="-Xms64m -Xmx256m -Xss1m  -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/path/to/dump"
# 在新的终端中启动 并且设置终端标题
start bash -c "echo -ne '\033]0;${JAR_FILE}\007'; java -jar  ${JAVA_OPTS} -Dspring.profiles.active=local ${JAR_FILE} exec bash"

1
2
3
4
5
6
7
上次更新: 2024/06/17, 11:58:14
最近更新
01
go-admin-ui项目仿写练手1-登录页
06-29
02
maven依赖问题
06-17
03
JVM相关命令
02-21
更多文章>