查看JVM参数
- jinfo:jinfo -flags Java进程编号
- Java -XX:+PrintFlagsInitial 查看jvm默认值
- java -XX:+PrintFlagsFinal -version 可以查看修改后的参数:=
- java -XX:PrintCommandLineFlags -version 简化版,可以看到垃圾回收器
JVM参数类型
-
标配参数:Java -version,-vhelp,-showversion
-
X参数(了解):-Xint:解释执行,-Xcomp:第一次使用就编译成本地代码,-Xmixed:混合模式
-
XX参数:
- Boolean类型:+代表开启,-代表关闭,jinfo -flag MetaspaceSize(配置项) 9527(线程号) 作用:查看当前运行程序的配置(查看元空间大小)
- KV设值类型:-xx:属性key=属性值value
JVM常用参数
- -Xms:等价于-XX:InitialHeapSize,堆 初始大小内存,默认为物理内存1/64
- -Xmx:等价于-XX:MaxHeapSize,堆最大分配内存,默认为物理内存的1/4
- -Xss:等价于-XX:ThreadStackSize,设置单个线程栈的大小,一般默认为512~1024k
- -Xmn:设置年轻代的大小
-
-XX:MetaspaceSize:设置元空间大小
-
-XX:+PrintGCDetails:输出详细GC收集日志信息 -XX:+PrintGC #打印GC信息
-XX:+PrintGCDetails #打印GC的详细信息 和-XX:+PrintGC同时存在时-XX:+PrintGC不生效
-Duser.timezone=Asia/Shanghai #设置时区 -XX:+PrintGCTimeStamps #GC时,打印进程启动到现在经历的时间 (持续时间)
-XX:+PrintGCDateStamps #输出GC的时间戳(以日期的形式) -XX:+PrintHeapAtGC #每次GC前后打印堆信息
-Xloggc:/data/gc/logs/gc.log #gc日志输出地址
-XX:+PrintTenuringDistribution #输出显示在survivor空间里面有效的对象的岁数情况。
-XX:+PrintGCApplicationStoppedTime 打印应用由于GC而产生的停顿时间 -XX:+PrintGCApplicationConcurrentTime 打印应用程序的执行时间 - -XX:SurvivorRatio:设置Eden:SurvivorFrom:SurvivorTo比例,默认8:1:1
- -XX:NewRatio:新生代和老年代的比例,默认1:2
- -XX:MaxTenuringThreshold:垃圾最大年龄,即垃圾年轻代年龄,默认15
-XX:ActiveProcessorCount 来指定 CPU 核数 -XX:+UnlockExperimentalVMOptions 和 -XX:+UseCGroupMemoryLimitForHeap 设置堆内存限制
注:
-> UnlockExperimentalVMOptions 必须在前
-> 只在 Linux 环境有效