• JVM 监控以及内存分析


    1 内存分析
    1.1 jmap -histo 命令
    pid=`jps | awk '{if ($2 == "Jps") print $1}'`
    jmap -histo $pid >>1.txt 查看pid中类的内存占用
    num     #instances(实例数)         #bytes(占用字节)  class name
    class name 解读
    B代表byte
    C代表char
    D代表double
    F代表float
    I代表int
    J代表long
    Z代表boolean
    前边有[代表数组,[I 就相当于int[]
    对象用[L+类名表示

    如果某个类的个数特别多, 就得检查是否内存溢出了。

    1.2 命令 jmap -heap

        jmap -heap 22792       
        Attaching to process ID 22792, please wait...  
        Debugger attached successfully.  
        Server compiler detected.  
        JVM version is 19.0-b09  
          
        using thread-local object allocation.  
        Parallel GC with 8 thread(s)  
          
        Heap Configuration:  
           MinHeapFreeRatio = 40                            # 对应jvm启动参数 -XX:MinHeapFreeRatio 设置JVM堆最小空闲比率 (默认40)  
           MaxHeapFreeRatio = 70                            # 对应jvm启动参数 -XX:MaxHeapFreeRatio 设置JVM堆最大空闲比率 (默认70)  
           MaxHeapSize      = 10737418240 (10240.0MB)       # 对应jvm启动参数 -XX:MaxHeapSize 设置JVM堆的最大大小  
           NewSize          = 5368709120 (5120.0MB)         # 对应jvm启动参数 -XX:NewSize 设置JVM堆的年轻代的默认大小  
           MaxNewSize       = 5368709120 (5120.0MB)         # 对应jvm启动参数 -XX:MaxNewSize 设置JVM堆的年轻带的最大大小  
           OldSize          = 5439488 (5.1875MB)            # 对应jvm启动参数 -XX:OldSize 设置JVM堆的老年代的大小  
           NewRatio         = 2                             # 对应jvm启动参数 -XX:NewRatio 老年代与年轻代的大小比率   
           SurvivorRatio    = 8                             # 对应jvm启动参数 -XX:SurvivorRatio 设置年轻代中Eden区与Survivor区的大小比值   
           PermSize         = 21757952 (20.75MB)            # 对应jvm启动参数 -XX:PermSize 设置JVM堆的持久带的初始大小  
           MaxPermSize      = 1073741824 (1024.0MB)         # 对应jvm启动参数 -XX:MaxPermSize 设置JVM堆的永生代的最大大小  
          
        Heap Usage:  
        PS Young Generation  
        Eden Space:                                         # Eden区内存分布 总量 已使用 空闲 使用比率  
           capacity = 5357305856 (5109.125MB)  
           used     = 1647437208 (1571.118553161621MB)  
           free     = 3709868648 (3538.006446838379MB)  
           30.751225565270396% used  
        From Space:                                         # 其中一个Survivor(sərˈvaɪvər)区内存分布 总量 已使用 空闲 使用比率  
           capacity = 5898240 (5.625MB)  
           used     = 2375696 (2.2656402587890625MB)  
           free     = 3522544 (3.3593597412109375MB)  
           40.278049045138886% used  
        To Space:                                           # 另一个Survivor区内存分布 总量 已使用 空闲 使用比率  
           capacity = 5505024 (5.25MB)  
           used     = 0 (0.0MB)  
           free     = 5505024 (5.25MB)  
           0.0% used  
        PS Old Generation                                   # 当前老年代内存分布 总量 已使用 空闲 使用比率  
           capacity = 5368709120 (5120.0MB)  
           used     = 181392168 (172.98905181884766MB)  
           free     = 5187316952 (4947.010948181152MB)  
           3.3786924183368683% used  
        PS Perm Generation                                  # 当前持久代内存分布 总量 已使用 空闲 使用比率  
           capacity = 72286208 (68.9375MB)  
           used     = 72213176 (68.86785125732422MB)  
           free     = 73032 (0.06964874267578125MB)  
           99.89896827898346% used  

    1.3
      jstat -gcutil [pid] [internal]  很实用
    S0: Survivor space 0 区已使用空间的百分比
    S1: Survivor space 1 区已使用空间的百分比
    E: Eden space 区已使用空间的百分比
    O: Old space 区已使用空间的百分比
    P: Perm space 区已使用空间的百分比
    YGC: Young GC 的次数
    YGCT: Young GC 所用的时间 单位秒
    FGC: Full GC 的次数
    FGCT: Full GC 所用的时间 单位秒
    GCT: 用于垃圾回收的总时间 单位秒

    1.4
    尽量减少Full GC的次数, 因为Full GC的消耗要比Monitor GC要大
    年轻代大小: 尽可能设大, 降低年轻代GC次数, 同时也减少达到老年代的对象?
    分配堆栈的最小值最好等于最大值, 因为动态分配也是需要耗费时间的. 如年轻代, 老年代, 持久代的最小最大值可设为一致
    参考

    http://www.oracle.com/technetwork/java/gc-tuning-5-138395.html  http://www.oracle.com/technetwork/java/javase/tech/vmoptions-jsp-140102.html


    2 参数调优

    http://blog.csdn.net/historyasamirror/article/details/6233007



     

  • 相关阅读:
    读后感四
    读后感五
    公文流转系统
    统计文件中单词的频率,给出前N的单词
    读入一个文件输出每个字母的频率
    小工到专家
    从小工到专家读后感
    动手动脑 类与对象
    海芋
    棕竹
  • 原文地址:https://www.cnblogs.com/chengxin1982/p/3998386.html
Copyright © 2020-2023  润新知