JVM三种类型参数详解
一、概述
JVM参数调优是程序员必备的技能,JVM的参数主要分为三种类型:1、标准型:稳定,比如java -version 2、X:相对变化较少的 3、XX:JVM调优的主要部分
二、JVM调优参数
XX:型参数主要分为如下两种
2.1 Boolean类型的
a、使用方法是:-XX:[+/-] name
开启使用+:比如开启G1垃圾回收期 -XX:+UseG1GC
关闭使用-:比如关闭G1垃圾回收期 -XX:-UseG1GC
b、查看方式
jps:查看程序的pid
查看是否开启JVM参数:jinfo -flag name pid
示例:
再比如查看新生代向老年代迭代的次数:jinfo -flag MaxTenuringThreshold pid
2.2 非boolean类型的:-XX:name= value
使用方法,比如要设置一个JVM的MetaspaceSize参数:-XX:MetaspaceSize=128m
查看设置后的结果
2.3 jinfo命令的使用
进入jdk的安装命令,查看jinfo的使用帮助:
使用方式:
a、jinfo -flag name pid
b、jinfo -flags pid
比如想看一个程序的初始化堆的大小:
jinfo -flag InitialHeapSize/MaxHeapSize pid
2.4 PrintFlags系列参数
-XX:+PrintFlagsInitial
-XX:+PrintFlagsFinal
使用示例:
java -XX:+PrintFlagsInitial
其中:
= 表示默认值
:= 表示修改过的
三、几个特殊的XX参数
1、-Xms: min 表示的是初始化堆的参数,等同于 -XX:InitialHeapSize
2、-Xmx:max 表示最大堆参数,等同于 -XX:MaxHeapSize
3、-Xss 表示线程堆栈的大小 -XX:ThreadStackSize
设置方式中没有“=”
如果JVM虚拟机memory是12G,一般
-XX:MaxHeapSize是 3.2g,为memory的1/4
-XX:InitialHeapSize是 200M,为memory的1/64