zoukankan      html  css  js  c++  java
  • 虚拟机性能监控与故障处理工具

      实践的角度了解虚拟机内存管理的世界。

    一、jdk的命令行工具

      1.JPS(JVM Process Status Tool)虚拟机进程状况工具。

      显示制定系统内所有的HotSpot虚拟机进程。

      功能单一,但是其他jdk工具大多需要输入它查询到的LVMID来确定要监控的哪一个虚拟机进程。对于本地虚拟机进程来说,LVMID与OS的进程ID是一致的。

      使用: jps [options] [hostid]

      

      例子:

        

      2.jstat (JDK Statistic Monitoring Tool) 虚拟机统计信息监控工具

      用于监控虚拟机各种运行状态信息的命令行工具。可以显示本地或者远程虚拟机进程中的类装载、内存、垃圾收集、JIT编译等运行时数据。没有GUI界面。它是运行期定位虚拟机性能问题的首选工具。

      jshat 格式:

      jshat [option vimd [interval [s|ms] [count] ] ]

      vmid :虚拟机唯一ID,如果本地虚拟机进程,vmid与lvmid一致,如果远程虚拟机进程,那么vmid格式应该是:

        [protocol :][//] lvmid[@hostname [:port] /servername].

      interval和count :查询时隔和次数。如果没有这两个参数只查询一次。

      option :代表用户希望查询的虚拟机信息,主要分成三类:类装载、垃圾收集、运行期编译状况。

      

      例子:

      ①  jstat -class 15043 

       显示加载class的数量,及所占空间等信息

      

      解释:Loaded (装载的类的数量);Bytes(装载类所占用的字节数);Unloaded(卸载类的数量);Bytes(卸载类的字节数);Time(装载和卸载类所花费的时间)

      ② jstat -gc 15043

      可以显示gc的信息,查看gc的次数,及时间。

       

      解释:

    S0C 第一个survivor的容量-字节
    S1C 第二个survivor的容量
    S0U 第一个survivor目前已使用空间
    S1U 第二个survivor目前已使用空间
    EC Eden的容量
    EU Eden目前已使用空间
    OC Old代的容量
    OU Old代目前已使用空间
    PC Perm的容量
    PU Perm目前已使用空间
    YGC 从应用程序启动到采样时年轻代中gc次数
    YGCT 从应用程序启动到采样时年轻代中gc所用时间(s)
    FGC 从应用程序启动到采样时old代(全gc)gc次数
    YGCT 从应用程序启动到采样时年轻代中gc所用时间(s)
    GCT 从应用程序启动到采样时gc用的总时间(s)

      ③jstat -gccapacity 15043  

      可以显示,VM内存中三代(young,old,perm)对象的使用和占用大小

        

    NGCMN   

    年轻代(young)中初始化(最小)的大小(字节)

    NGCMX    

    年轻代(young)的最大容量 (字节)

    NGC    

    年轻代(young)中当前的容量 (字节)

    S0C  

    年轻代中第一个survivor(幸存区)的容量 (字节)

    S1C      

    年轻代中第二个survivor(幸存区)的容量 (字节)

    EC     

    年轻代中Eden(伊甸园)的容量 (字节)

    OGCMN     

    old代中初始化(最小)的大小 (字节)

    OGCMX      

    old代的最大容量(字节)

    OGC

    old代当前新生成的容量 (字节)

    OC     

    Old代的容量 (字节)

    PGCMN   

    perm代中初始化(最小)的大小 (字节)

    PGCMX    

    perm代的最大容量 (字节)  

    PGC      

    perm代当前新生成的容量 (字节)

    PC    

    Perm(持久代)的容量 (字节)

    YGC   

    从应用程序启动到采样时年轻代中gc次数

    FGC

    从应用程序启动到采样时old代(全gc)gc次数

      ④ jstat -gcutil 15043 统计gc信息 已用空间占总空间的比值

      

    S0    

    年轻代中第一个survivor(幸存区)已使用的占当前容量百分比

    S1    

    年轻代中第二个survivor(幸存区)已使用的占当前容量百分比

    E     

    年轻代中Eden(伊甸园)已使用的占当前容量百分比

    O     

    old代已使用的占当前容量百分比

    P    

    perm代已使用的占当前容量百分比

    YGC    

    从应用程序启动到采样时年轻代中gc次数

    YGCT   

    从应用程序启动到采样时年轻代中gc所用时间(s)

    FGC   

    从应用程序启动到采样时old代(全gc)gc次数

    FGCT    

    从应用程序启动到采样时old代(全gc)gc所用时间(s)

    GCT

    从应用程序启动到采样时gc用的总时间(s)

      ⑤ jstat -gccause 7594 与gcutil相似,额外输出导致上次GC的原因

      

      ⑥jstat -compiler 7594 输出JIT编译器编译过的方法、耗时等信息。

       

       ⑥ jstat -printcompilation 7594 输出已经被编译器编译的方法。

      

      

      3.jinfo: Java配置信息工具。

      作用:实时的查看和调整虚拟机各项参数。

      例子:

      使用jinfo来打开虚拟机GC日志打印参数  

     jinfo -flag +PrintGC 7594 
     jinfo -flag +PrintGCDDetails 7594

     关闭:
     jinfo -flag -PrintGC 7594 
     jinfo -flag -PrintGCDDetails 7594
      如果抛异常则表示不能修改。
     4. jmap(Memory Map for Java ):Java 内存映像工具
     
    用于生成堆转储快照。
     命令格式:jmap [option] vmid
     
      

     

      例子:
      ① jmap -dump:live,format=b,file=d:/aaa.bin 7420 生成Java堆转储快照放在D:/aaa.bin
      ②jmap -heap 7420 显示堆详细信息
      
      
      能看出来是使用的是parallel 垃圾收集器,并且是四个线程。
      ③jmap -histo:live 7420 查看对象。
      num     #instances         #bytes  class name
      1 1 16 sun.security.util.ByteArrayLexOrder
      5.jhat (Java Heap Analysis Tool) 虚拟机堆转储快照分析工具。
       
    与jmap搭配使用。用于分析jmap生成的堆转储快照。 
      jhat aaa.bin
      然后浏览器输入127.0.0.1:7000就能访问分析结果。
     6.jstack:(Stack Trace for java)
      用于生成虚拟机当前时刻的线程快照,线程快照就是当前虚拟机内每一条线程正在执行的方法栈的集合,生成线程快照的目的就是定位线程出现
    长时间停顿的原因:如线程间死锁、死循环、请求外部资源导致的长时间等待等都是导致线程出现长时间停顿的原因。
      格式:jstack [option] vmid
      

      

     

     

      

  • 相关阅读:
    AttributeError: module 'scipy.misc' has no attribute 'imread'
    3.形态学
    2.几何变换_图像金字塔
    ValueError:Object arrarys cannot be loaded when allow_pickle=False
    2.几何变换_切分合并通道
    2.几何变换_遮挡
    49. Group Anagrams
    151. Reverse Words in a String
    242. Valid Anagram
    227. Basic Calculator II
  • 原文地址:https://www.cnblogs.com/zhangzongxing01/p/5562392.html
Copyright © 2011-2022 走看看