一、JVM参数类型
1、标配参数
-version、-help、-showversion
2、X参数
-Xint 解释执行
-Xcomp 第一次使用就编译成本地代码
-Xmixed 混合模式
3、XX参数
布尔类型
格式: -XX:+/- 某个属性值,+表示开启,-表示关闭
Case:
- 打印GC收集细节日志 -XX:+PrintGCDetails
- 指定垃圾回收器(Serial): -XX:+UseSerialGC
KV设置类型
格式:-XX:属性key=属性值value
Case:
- -XX:MetaspaceSize=128m(元空间默认约21m)
- -XX:MaxTenuringThreshold=15 (转向老年代前,年轻代GC次数)
jinfo实际使用
格式:
- jinfo -flag 配置项 进程编号
Case:
- jinfo -flags 进程编号 查询线程下所有配置项(Command line里面的信息是手工修改配置的)
- jinfo -flag MaxHeapSize 进程编号(最大堆空间)
- jinfo -flag UseSerialGC 进程编号(串行回收器)
- jinfo -flag UseParallelGC 进程编号(并行回收器)
注意点
-Xms 等价于-XX:InitialHeapSize
-Xmx 等价于-XX:MaxHeapSize
二、JVM配置默认值
查看默认初始值
命令:java -XX:+PrintFlagsInitial -version
查看修改更新值
命令:java -XX:+PrintFlagsFinal -XX:MetaspaceSize=512m Demo2
Demo2是java类名
=表示没有修改,:=表示修改后的
三、常用配置清单
- -Xms 等价于 -XX:InitialHeapSize(堆内存初始大小,默认为物理内存的1/64)
- -Xmx 等价于 -XX:MaxHeapSize(最大堆内存,默认为物理内存的1/4)
- -Xss 等价于 -XX:ThreadStackSize (设置单个线程栈大小,默认为512k~1024k)
- -Xmn 设置年轻代大小,JVM按比例分配
- -XX:MetaspaceSize 设置元空间大小(元空间受本地内存限制)
- -XX:+PrintGCDetails GC收集详细日志信息
- -XX:SurvivorRatio 设置新生代中Eden和S0/S1空间比例。
默认: -XX:SurvivorRatio=8,Eden:S0:S1 = 8:1:1
例如: -XX:SurvivorRatio=4,Eden:S0:S1 = 4:1:1
- -XX:NewRatio 设置年轻代与老年代在堆中的占比。
默认: -XX:NewRatio=2,新生代:老年代 = 1:2
例如: -XX:NewRatio=4,新生代:老年代 = 1:4
- -XX:MaxTenuringThreshold 设置(转向老年代前,年轻代GC次数)