jvm参数类型
-
标准参数(jvm各个版本基本不变)
-
shell -help -server -client -version -cp -classpath
-
X参数(非标准化参数,变化比较小)
-
shell -Xint 解释执行 -Xcomp 第一次使用就编译成本地代码 -Xmixed 混合模式,JVM自己来决定是否编译成本地代码
-
XX参数(用的比较多,主要用来JVM调优和debug)
-
Boolean类型
格式:-XX:[+-]
表示启用或者禁用name属性 shell -XX:+UseConcMarkSweepGC -XX:+UseG1GC
-
非Boolean类型
格式:-XX:
= 表示name属性的值是value ```shell -XX:MaxGCPauseMillis=500 XX:GCTimeRatio=19
-Xms -Xmx 属于XX参数
-Xms 等价于 -XX:InitialHeapSize -Xmx 等价于 -XX:MaxHeapSize ```
查看jvm运行时参数
-
shell -XX:+PrintFlagsInitial 查看初始值 -XX:+PrintFlagsFinal 查看最终值 -XX:+UnlockExperimentalVMOptions 解锁实验参数 -XX:+UnlockDiagnosticVMOptions 解锁诊断参数 -XX:+PrintCommandLineFlags 打印命令行参数
-
-XX:+PrintFlagsFinal
java -XX:+PrintFlagsFinal -version
=表示默认值
:=被用户或者jvm修改后的值
- jinfo
shell
jinfo -flags 55208 打印被修改过的jvm参数值
jinfo -flag <name> 55208 打印对应name的参数值
查看jvm统计信息
- jstat
shell
options:
-class 类装载
-compiler JIT编译信息
-gc 垃圾回收信息
-
类装载
-
垃圾收集
S0C S1C S0U S1U : S0与S1的总量与使用量
EC EU :Eden区总量与使用量
OC OU:Old区的总量与使用量
MC MU:Metaspace 区总量与使用量
CCSC CCSU:压缩类空间总量与使用量
YGC YGCT :YongGC的次数与时间
FGC FGCT:FullGC的次数与时间
GCT:总的GC时间
-
JIT编译
导出内存映像文件
- 内存溢出自动导出
shell
-XX:+HeapDumpOnOutOfMemoryError
-XX:HeapDumpPath=./
- 使用jmap命令手动导出
shell
jmap -dump:format=b,file=heap.hprof <虚拟机id>