• 二,JVM 自带命令行工具之JStat


    jstat:虚拟机统计信息见识工具

    jstat是用于见识虚拟机各种运行状态信息的命令行工具。他可以显示本地或远程虚拟机进程中的类装载、内存、垃圾收集、JIT编译等运行数据。

    jstat option vmid [interval[s|ms] [count]]

    E表示Eden;

    s1,s1表示survivor0,survivor1;

    老年代o表示old,永久代p表示permanent

    程序运行以来供放生Minor GC(YGC,表示Yong GC)122次,总耗时0.392,发生Full GC(FGC,表示Full GC)6次,(FGCT)总耗时为0.666。

    不同的统计维度(statOption)及输出说明

        -class

    类加载情况的统计
    列名说明
    Loaded 加载了的类的数量
    Bytes 加载的类的大小,单为Kb
    Unloaded 卸载了的类的数量
    Bytes 载了的类的大小,单为Kb
    Time 花在类的加载及的时间

                                  

         -compiler

    HotSpot中即时编译器编译情况的统计
    列名说明
    Compiled 编译任务执行的次数
    Failed 编译任务执行失败的次数
    Invalid 编译任务非法执行的次数
    Time 执行编译花费的时间
    FailedType 最后一次编译失败的编译类型
    FailedMethod 最后一次编译失败的类名及方法名

                                              

         -gc

    JVM中堆的垃圾收集情况的统计
    列名说明
    S0C 新生代中Survivor spaceS0当前容量的大小KB)
    S1C 新生代Survivor space中S1当前容量的大小(KB)
    S0U 新生代Survivor space中S0容量使用的大小(KB)
    S1U 新生代Survivor space中S1容量使用的大小(KB)
    EC Eden space当前容量的大小(KB)
    EU Eden space容量使用的大小(KB)
    OC Old space当前容量的大小(KB)
    OU Old space使用容量的大小(KB)
    PC Permanent space当前容量的大小(KB)
    PU Permanent space使用容量的大小(KB)
    YGC 从应用程序启动到采样时发生 Young GC 的次数
    YGCT 从应用程序启动到采样时 Young GC 所用的时间(秒)
    FGC 从应用程序启动到采样时发生 Full GC 的次数
    FGCT 从应用程序启动到采样时 Full GC 所用的时间(秒)
    GCT T从应用程序启动到采样时用于垃圾回收的总时间(单位秒),它的值等于YGC+FGC

                                              

        -gccapacity

    新生代、老生代及持久代的存储容量情况
    列名说明
    NGCMN 新生代的最小容大小(KB)
    NGCMX 新生代的最大容量大小KB)
    NGC 当前新生代的容量大小KB)
    S0C 当前新生代中survivor space 0的容量大小KB)
    S1C 当前新生代中survivor space 1的容量大小KB)
    EC Eden space当前容量的大小(KB)
    OGCMN 老生代的最小容量大小(KB)
    OGCMX 老生代的最大容量大小(KB)
    OGC 当前老生代的容量大小(KB)
    OC 当前老生代的空间容量大小(KB)
    PGCMN 持久代的最小容量大小(KB)
    PGCMX 持久代的最大容量大小KB)
    PGC 当前持久代的容量大小KB)
    PC 当前持久代的空间容量大小(KB)
    YGC 从应用程序启动到采样时发生 Young GC 的次数
    FGC 从应用程序启动到采样时发生 Full GC 的次数

                                              JVM配置:-Xms10m -Xmx10m -Xss128k  -XX:PermSize=10M -XX:MaxPermSize=10M

                                              打印结果                       

                                   

        -gccause

         这个选项用于查看垃圾收集的统计情况(这个和-gcutil选项一样),如果有发生垃圾收集,它还会显示最后一次及当前正在发生垃圾收集的原因,它比-gcutil会多出最后一次垃圾收集原因以及当前正在发生的垃圾收集的原因。

    用于查看垃圾收集的统计情况,包括最近发生垃圾的原因
    列名说明
    LGCC 最后一次垃圾收集的原因,可能为unknown GCCause”、“System.gc()”等
    GCC 当前垃圾收集的原因

                                            

        -gcnew

    新生代垃圾收集的情况
    列名说明
    S0C 当前新生代中survivor space 0的容量大小(KB)
    S1C 当前新生代中survivor space 1的容量大小(KB)
    S0U S0已经使用的大小(KB)
    S1U S1已经使用的大小(KB)
    TT Tenuring threshold,要了解这个参数,我们需要了解一点Java内存对象的结,在Sun JVM中,(除了数组之外的)对象都有两个机器字(words)的头部。第一个字中包含这个对象的标示哈希码以及其他一些类似锁状态和等标识信息,第二个字中包含一个指向对象的类的引用,其中第二个字节就会被垃圾收集算法使用到。
    在新生代中做垃圾收集的时候,每次复制一个对象后,将增加这个对象的收集计数,当一个对象在新生代中被复制了一定次数后,该算法即判定该对象是长周期的对象,把他移动到老生代,这个阈值叫着tenuring threshold。这个阈值用于表示某个/些在执行批定次数youngGC后还活着的对象,即使此时新生的的Survior没有满,也同样被认为是长周期对象,将会被移到老生代中。
    MTT Maximum tenuring threshold,用于表示TT的最大值。
    DSS Desired survivor size (KB).可以参与这里:http://blog.csdn.net/yangjun2/article/details/6542357
    EC Eden space当前容量的大小(KB)
    EU Eden space已经使用的大小(KB)
    YGC 从应用程序启动到采样时发生 Young GC 的次数
    YGCT 从应用程序启动到采样时 Young GC 所用的时间(单位秒)

                                              

        -gcnewcapacity

    新生代的存储容量情况
    列名说明
    NGCMN           新生代的最小容量大小(KB)
    NGCMX     新生代的最大容量大小KB)
    NGC     当前新生代的容量大小KB)
    S0CMX 新生代中SO的最大容量大小KB)
    S0C 当前新生代中SO的容量大小KB)
    S1CMX 新生代中S1的最大容量大小KB)
    S1C 当前新生代中S1的容量大小KB)
    ECMX 新生代中Eden的最大容量大小KB)
    EC 当前新生代中Eden的容量大小KB)
    YGC 从应用程序启动到采样时发生 Young GC 的次数
    FGC 从应用程序启动到采样时发生 Full GC 的次数

                                          

        -gcold

    老生代及持久代发生GC的情况
    列名说明
    PC 当前持久代量的大小(KB)
    PU 持久代使用容量的大小(KB)
    OC 当前老年代容量的大小(KB)
    OU 老年代使用容量的大小(KB)
    YGC 从应用程序启动到采样时发生 Young GC 的次数
    FGC 从应用程序启动到采样时发生 Full GC 的次数
    FGCT 从应用程序启动到采样时 Full GC 所用的时间(单位秒)
    GCT 从应用程序启动到采样时用于垃圾回收的总时间(单位秒),它的值等于YGC+FGC

                                           

        -gcoldcapacity

    老生代的存储容量情况
    列名说明
    OGCMN 老生代的最小容量大小(KB)
    OGCMX 老生代的最大容量大小(KB)
    OGC 当前老生代的容量大小KB)
    OC 当前新生代的空间容量大小KB)
    YGC 从应用程序启动到采样时发生 Young GC 的次数
    FGC 从应用程序启动到采样时发生 Full GC 的次数
    FGCT 从应用程序启动到采样时 Full GC 所用的时间(单位秒)
    GCT 从应用程序启动到采样时用于垃圾回收的总时间(单位秒),它的值等于YGC+FGC

        -gcpermcapacity

        从应用程序启动到采样时发生 Full GC 的次数

    持久代的存储容量情况
    列名说明
    PGCMN 持久代的最小容量大小(KB)
    PGCMX 持久代的最大容量大小(KB)
    PGC 当前持久代的容量大小KB)
    PC 当前持久代的空间容量大小KB)
    YGC 从应用程序启动到采样时发生 Young GC 的次数
    FGC
    FGCT 从应用程序启动到采样时 Full GC 所用的时间(单位秒)
    GCT 从应用程序启动到采样时用于垃圾回收的总时间(单位秒),它的值等于YGC+FGC

        -gcutil(这个经常用到)

    新生代、老生代及持代垃圾收集的情况
    列名说明
    S0 Heap上的 Survivor space 0 区已使用空间的百分比
    S1 Heap上的 Survivor space 1 区已使用空间的百分比
    E Heap上的 Eden space 区已使用空间的百分比
    O Heap上的 Old space 区已使用空间的百分比
    P Perm space 区已使用空间的百分比
    YGC 从应用程序启动到采样时发生 Young GC 的次数
    YGCT 从应用程序启动到采样时 Young GC 所用的时间(单位秒)
    FGC 从应用程序启动到采样时发生 Full GC 的次数
    FGCT 从应用程序启动到采样时 Full GC 所用的时间(单位秒)
    GCT 从应用程序启动到采样时用于垃圾回收的总时间(单位秒),它的值等于YGC+FGC

                                              

        -printcompilation

    HotSpot编译方法的统计
    列名说明
    Compiled 编译任务执行的次数
    Size 方法的字节码所占的字节数
    Type 编译类型
    Method 指定确定被编译方法的类名及方法名,类名中使名“/”而不是“.”做为命名分隔符,方法名是被指定的类中的方法,这两个字段的格式是由HotSpot中的“-XX:+PrintComplation”选项确定的。

                                              

  • 相关阅读:
    shell-变量的数值运算let内置命令
    shell-变量的数值运算符-计算双括号(())的使用
    shell-批量修改文件名及扩展名多案例
    shell-变量的字串应用技术
    一个MVVM前端扩展器
    测试一个mysql 悲观锁
    spring rest项目提示Request method 'PUT' not supported Method Not Allowed 405 错误
    Mysql 使用sql语句添加列,修改列默认值,添加类注释
    理解java泛型中的 上界extend 下界super
    mysql存储过程游标循环装载字符串SQL语句示例
  • 原文地址:https://www.cnblogs.com/pingh/p/3481360.html
Copyright © 2020-2023  润新知