一、概述
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
