前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >JVM参数调优基础-参数的类型详解

JVM参数调优基础-参数的类型详解

作者头像
JavaEdge
发布2020-05-27 09:43:49
2.5K0
发布2020-05-27 09:43:49
举报
文章被收录于专栏:JavaEdge

1 参数类型

1.1 标准参数

-help -server -client -version -showversion -cp -classpath

1.2 X 参数

  • 非标准化参数
  • -Xint :解释执行
  • -Xcomp :第一次使用就编译成本地代码
  • -Xmixed :混合模式, JVM自己来决定是否编译成本地代码
  • JDK8默认混合模式
更为编译执行
更为编译执行

1.3 XX 参数

  • 非标转化参数,相对不稳定,主要用于JVM调优和Debug

Boolean类型

  • 格式: -XX:[±]表示启用或者禁用name属性,比如: -XX:+ UseConcMarkSweepGC -XX:+UseG1GC

非 Boolean类型

  • 格式: -XX: <name> = <value>表示name属性的值是value 比如: -XX:MaxGCPauseMilis=500 XX:GCTimeRatio=19

注意,-Xmx -Xms不是X参数,而是XX参数 -Xms等价于-XX:InitialHeapSize -Xmx等价于-XX:MaxHeapSize

2 运行时参数

  • -XX:+ PrintFlagsInitial
  • -XX:+ PrintFlagsFinal
  • -XX: +UnlockExperimentalVMOptions 解锁实验参数
  • -XX: + UnlockDiagnosticVMOptions 解锁诊断参数
  • -XX:+ PrintCommandLineFlags 打印命令行参数

查看XX选项的值

  • -XX:+PrintCommandLineFlags
  • -XX:+PrintFlagsInitial -XX:+PrintFlagsFinal
  • =表示默认值
  • :=被用户或者JVM修改后的值

jps

jps
jps
jps -l
jps -l

jinfo

  • 查看最大内存
代码语言:javascript
复制
jinfo -flag MaxHeapSize 1430

-XX:MaxHeapSize=1073741824
  • 查看垃圾收集器
代码语言:javascript
复制
➜  ~ jinfo -flag UseConcMarkSweepGC 1430
-XX:-UseConcMarkSweepGC
  • 查看回收次数阈值
代码语言:javascript
复制
➜  ~ jinfo -flag MaxTenuringThreshold 58064
-XX:MaxTenuringThreshold=15

3 jstat

查看JVM统计信息

3.1 类装载

3.2 GC

-gc, -gcutil, -gccause, -gcnew, -gcold

-gc输出结果

S0C、S1C、SOU、 S1∪ : S0和S1的总量与使用量 EC、EU : Eden区总量与使用量 OC、OU : Old区总量与使用量 MC、MU : Metaspace区总量与使用量 CCSC、CCSU :压缩类空间总量与使用量 YGC、YGCT : YoungGC的次数与时间 FGC、FGCT : FulIGC的次数.与时间 GCT :总的GC时间

JIT 编译

  • -compiler
  • -printcompilation

4 jmap + MAT 实战内存溢出

堆区

非堆区

5 导出内存映像文件

OutofMemory(OOM)相关的选项

如果程序发生了OOM后,JVM可以配置一些选项来做些善后工作,比如把内存给dump下来,或者自动采取一些别的动作

  • -XX:+HeapDumpOnOutOfMemoryError 在内存出现OOM的时候,把Heap转存(Dump)到文件以便后续分析,文件名通常是java_pid<pid>.hprof
  • -XX:HeapDumpPath= 指定heap转存文件的存储路径,需要指定的路径下有足够的空间来保存转存文件
  • -XX:OnOutOfMemoryError 指定一个可行性程序或者脚本的路径,当发生OOM的时候,去执行这个脚本

内存溢出自动导出

  • -XX:+ HeapDumpOnOutOfMemoryError
  • -XX:HeapDumpPath=./

使用jmap命令手动导出

jmap

option : -heap , -clstats , -dump: , -F

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2020/02/16 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1 参数类型
    • 1.1 标准参数
      • 1.2 X 参数
        • 1.3 XX 参数
          • Boolean类型
          • 非 Boolean类型
      • 2 运行时参数
        • 查看XX选项的值
          • jps
            • jinfo
            • 3 jstat
              • 3.1 类装载
              • 3.2 GC
                • -gc输出结果
                  • JIT 编译
                  • 4 jmap + MAT 实战内存溢出
                    • 堆区
                      • 非堆区
                      • 5 导出内存映像文件
                        • OutofMemory(OOM)相关的选项
                        • jmap
                        领券
                        问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档