跳转至

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>