• JVM调优命令详解


    jmap

    jmap -histo 进程id
    可以查看内存的信息,实例个数和占用内存的大小

    dump

    jmap ‐dump:format=b,file=eureka.hprof 进程id
    可以生成dump文件,通过配置

    1. -XX:+HeapDumpOnOutOfMemoryError
    2. -XX:HeapDumpPath=./ (路径)
      来实现内存溢出时自动生成快照文件

    jstack

    jstack 进程id
    查找死锁

    如何通过jstack查看cpu最高的线程堆栈信息

    1.使用top -p ,查看你的java进程的内存情况,pid就是java进程号,比如19663
    2.按H(必须大写),获取每个线程的内存情况
    3.找到内存和cpu占用最高的线程的tid,比如19664
    4.将tid转换为十六进制,得到0x4cd0
    5.执行 jstack 19663|grep -A 10 4cd0,得到4cd0这个线程后10行数据,从堆栈中可以看见cpu飙高的调用方法
    6.查看对应的问题代码

    jinfo

    jinfo -flags 进程id
    查看jvm的参数
    jinfo -sysprops 进程id
    查看java系统参数

    jstat

    jstat命令可以查看堆内存各部分的使用量,以及加载类的数量。命令的格式如下:
    jstat [-命令选项] [vmid] [间隔时间(毫秒)] [查询次数]

    垃圾回收统计

    jstat -gc pid 最常用,可以评估程序内存使用及GC压力整体情况
    字段含义:
    S0C:第一个幸存区的大小,单位KB
    S1C:第二个幸存区的大小
    S0U:第一个幸存区的使用大小S1U:第二个幸存区的使用大小
    EC:伊甸园区的大小
    EU:伊甸园区的使用大小
    OC:老年代大小
    OU:老年代使用大小
    MC:方法区大小(元空间)
    MU:方法区使用大小
    CCSC:压缩类空间大小
    CCSU:压缩类空间使用大小
    YGC:年轻代垃圾回收次数
    YGCT:年轻代垃圾回收消耗时间,单位s
    FGC:老年代垃圾回收次数
    FGCT:老年代垃圾回收消耗时间,单位s
    GCT:垃圾回收消耗总时间,单位s

    堆内存统计

    jstat -gccapacity pid
    字段含义:
    NGCMN:新生代最小容量
    NGCMX:新生代最大容量
    NGC:当前新生代容量
    S0C:第一个幸存区大小
    S1C:第二个幸存区的大小
    EC:伊甸园区的大小
    OGCMN:老年代最小容量
    OGCMX:老年代最大容量
    OGC:当前老年代大小
    OC:当前老年代大小
    MCMN:最小元数据容量
    MCMX:最大元数据容量
    MC:当前元数据空间大小
    CCSMN:最小压缩类空间大小
    CCSMX:最大压缩类空间大小
    CCSC:当前压缩类空间大小
    YGC:年轻代gc次数
    FGC:老年代GC次数

    新生代垃圾回收统计

    jstat -gcnew pid
    字段含义:
    S0C:第一个幸存区的大小
    S1C:第二个幸存区的大小
    S0U:第一个幸存区的使用大小
    S1U:第二个幸存区的使用大小
    TT:对象在新生代存活的次数
    MTT:对象在新生代存活的最大次数
    DSS:期望的幸存区大小
    EC:伊甸园区的大小
    EU:伊甸园区的使用大小
    YGC:年轻代垃圾回收次数
    YGCT:年轻代垃圾回收消耗时间

    新生代内存统计

    jstat -gcnewcapacity pid
    NGCMN:新生代最小容量
    NGCMX:新生代最大容量
    NGC:当前新生代容量
    S0CMX:最大幸存1区大小
    S0C:当前幸存1区大小
    S1CMX:最大幸存2区大小
    S1C:当前幸存2区大小
    ECMX:最大伊甸园区大小
    EC:当前伊甸园区大小
    YGC:年轻代垃圾回收次数
    FGC:老年代回收次数

    老年代垃圾回收统计

    jstat -gcold pid
    MC:方法区大小
    MU:方法区使用大小
    CCSC:压缩类空间大小
    CCSU:压缩类空间使用大小
    OC:老年代大小
    OU:老年代使用大小
    YGC:年轻代垃圾回收次数
    FGC:老年代垃圾回收次数
    FGCT:老年代垃圾回收消耗时间
    GCT:垃圾回收消耗总时间

    老年代内存统计

    jstat -gcoldcapacity pid
    MC:方法区大小
    MU:方法区使用大小
    CCSC:压缩类空间大小
    CCSU:压缩类空间使用大小
    OC:老年代大小
    OU:老年代使用大小
    YGC:年轻代垃圾回收次数
    FGC:老年代垃圾回收次数
    FGCT:老年代垃圾回收消耗时间
    GCT:垃圾回收消耗总时间

    元数据空间统计

    jstat -gcmetacapacity pid
    MCMN:最小元数据容量
    MCMX:最大元数据容量
    MC:当前元数据空间大小
    CCSMN:最小压缩类空间大小
    CCSMX:最大压缩类空间大小
    CCSC:当前压缩类空间大小
    YGC:年轻代垃圾回收次数
    FGC:老年代垃圾回收次数
    FGCT:老年代垃圾回收消耗时间
    GCT:垃圾回收消耗总时间

    总结垃圾回收统计

    jstat -gcutil pid
    MCMN:最小元数据容量
    MCMX:最大元数据容量
    MC:当前元数据空间大小
    CCSMN:最小压缩类空间大小
    CCSMX:最大压缩类空间大小
    CCSC:当前压缩类空间大小
    YGC:年轻代垃圾回收次数
    FGC:老年代垃圾回收次数
    FGCT:老年代垃圾回收消耗时间
    GCT:垃圾回收消耗总时间

  • 相关阅读:
    Unity编辑器
    Unity编辑器
    Unity编辑器
    MaxScript代码补全插件
    学习用MaxScipt批处理Max文件
    Unity编辑器
    Unity编辑器
    节属性 转 页属性
    在挂起的进程中创建一个远程线程
    Sql server 级联删除
  • 原文地址:https://www.cnblogs.com/gdvxfgv/p/16047639.html
Copyright © 2020-2023  润新知