jvm性能监控与调优
jvm参数类型
标准参数(jvm各个版本基本不变)
- ```shell
-help
-server
-client
-version
-cp
-classpath* X参数(非标准化参数,变化比较小) * ```shell -Xint 解释执行 -Xcomp 第一次使用就编译成本地代码 -Xmixed 混合模式,JVM自己来决定是否编译成本地代码
- ```shell
XX参数(用的比较多,主要用来JVM调优和debug)
Boolean类型
格式:-XX:[+-]
表示启用或者禁用name属性 -XX:+UseConcMarkSweepGC -XX:+UseG1GC
非Boolean类型
格式:-XX:
= 表示name属性的值是value -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
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编译
导出内存映像文件
内存溢出自动导出
-XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=./
使用jmap命令手动导出
jmap -dump:format=b,file=heap.hprof <虚拟机id>
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 haominglfs的博客!