zoukankan      html  css  js  c++  java
  • jmeter性能压测查看JVM内存使用详情来让开发调优

    1.什么是JVM?
    Java虚拟机,组成部分包括堆、方法区、栈、本地方法栈、程序计算器等部分,其中方法回收堆和方法区是共享区,也就是谁都可以使用,而栈和程序计算器、本地方法栈区是归JVM的。

    想要深入理解jvm就必须要知道JRE、JVM、JDK三者的关系是什么
    2.了解JRE、JVM、JDK三者的关系是什么?
    JDK是Java程序员常用的开发包、目的就是用来编译和调试Java程序的。JRE是指Java运行环境,也就是我们的写好的程序必须在JRE才能够运行。JVM是Java虚拟机的缩写,是指负责将字节码解释成为特定的机器码进行运行,值得注意的是在运行过程中,Java源程序需
    要通过编译器编译为.class文件,否则JVM不认识。
    3.jmap命令基本概述
      jmap命令是一个可以输出所有内存中对象的工具,甚至可以将VM 中的heap,以二进制输出成文本。
      打印出某个java进程(使用pid)内存内的,所有‘对象’的情况(如:产生那些对象,及其数量)。
    1.首先查下jar的进程 : ps -ef|grep java
    2.然后命令jmap -heap 19570 看GC使用情况

    解析

    复制代码
    using parallel threads in the new generation.  ##新生代采用的是并行线程处理方式
    

    using thread-local object allocation.

    Concurrent Mark-Sweep GC ##同步并行垃圾回收

    Heap Configuration: ##堆配置情况,也就是JVM参数配置的结果[平常说的tomcat配置JVM参数,就是在配置这些]

    MinHeapFreeRatio = 40 ##最小堆使用比例

    MaxHeapFreeRatio = 70 ##最大堆可用比例

    MaxHeapSize = 2147483648 (2048.0MB) ##最大堆空间大小

    NewSize = 268435456 (256.0MB) ##新生代分配大小

    MaxNewSize = 268435456 (256.0MB) ##最大可新生代分配大小

    OldSize = 5439488 (5.1875MB) ##老年代大小

    NewRatio = 2 ##新生代比例

    SurvivorRatio = 8 ##新生代与suvivor的比例

    PermSize = 134217728 (128.0MB) ##perm区 永久代大小

    MaxPermSize = 134217728 (128.0MB) ##最大可分配perm区 也就是永久代大小

    Heap Usage: ##堆使用情况【堆内存实际的使用情况】

    New Generation (Eden + 1 Survivor Space): ##新生代(伊甸区Eden区 + 幸存区survior(1+2)空间)

    capacity = 241631232 (230.4375MB) ##伊甸区容量

    used = 77776272 (74.17323303222656MB) ##已经使用大小

    free = 163854960 (156.26426696777344MB) ##剩余容量

    32.188004570534986% used ##使用比例

    Eden Space: ##伊甸区

    capacity = 214827008 (204.875MB) ##伊甸区容量

    used = 74442288 (70.99369812011719MB) ##伊甸区使用

    free = 140384720 (133.8813018798828MB) ##伊甸区当前剩余容量

    34.65220164496263% used ##伊甸区使用情况

    From Space: ##survior1区

    capacity = 26804224 (25.5625MB) ##survior1区容量

    used = 3333984 (3.179534912109375MB) ##surviror1区已使用情况

    free = 23470240 (22.382965087890625MB) ##surviror1区剩余容量

    12.43827838477995% used ##survior1区使用比例

    To Space: ##survior2 区

    capacity = 26804224 (25.5625MB) ##survior2区容量

    used = 0 (0.0MB) ##survior2区已使用情况

    free = 26804224 (25.5625MB) ##survior2区剩余容量

    0.0% used ## survior2区使用比例

    PS Old Generation: ##老年代使用情况

    capacity = 1879048192 (1792.0MB) ##老年代容量

    used = 30847928 (29.41887664794922MB) ##老年代已使用容量

    free = 1848200264 (1762.5811233520508MB) ##老年代剩余容量

    1.6416783843721663% used ##老年代使用比例

    Perm Generation: ##永久代使用情况

    capacity = 134217728 (128.0MB) ##perm区容量

    used = 47303016 (45.111671447753906MB) ##perm区已使用容量

    free = 86914712 (82.8883285522461MB) ##perm区剩余容量

    35.24349331855774% used ##perm区使用比例

    复制代码

    4.垃圾回收统计
    命令:jstat -gc 19349
    结果:

    复制代码
    S0C:第一个幸存区的大小
    S1C:第二个幸存区的大小
    S0U:第一个幸存区的使用大小
    S1U:第二个幸存区的使用大小
    EC:伊甸园区的大小
    EU:伊甸园区的使用大小
    OC:老年代大小
    OU:老年代使用大小
    MC:方法区大小
    MU:方法区使用大小
    CCSC:压缩类空间大小
    CCSU:压缩类空间使用大小
    YGC:年轻代垃圾回收次数
    YGCT:年轻代垃圾回收消耗时间
    FGC:老年代垃圾回收次数
    FGCT:老年代垃圾回收消耗时间
    GCT:垃圾回收消耗总时间

     

    复制代码
    5.堆内存统计 命令:jstat -gccapacity 19349 结果: ![](https://img2020.cnblogs.com/blog/1274292/202101/1274292-20210122182848451-184955990.png)

    解析:

    复制代码
    NGCMN:新生代最小容量
    NGCMX:新生代最大容量
    NGC:当前新生代容量
    S0C:第一个幸存区大小
    S1C:第二个幸存区的大小
    EC:伊甸园区的大小
    OGCMN:老年代最小容量
    OGCMX:老年代最大容量
    OGC:当前老年代大小
    OC:当前老年代大小
    MCMN:最小元数据容量
    MCMX:最大元数据容量
    MC:当前元数据空间大小
    CCSMN:最小压缩类空间大小
    CCSMX:最大压缩类空间大小
    CCSC:当前压缩类空间大小
    YGC:年轻代gc次数
    FGC:老年代GC次数
    复制代码
    6.总结垃圾回收统计 命令:jstat -gcutil 19349 结果: ![](https://img2020.cnblogs.com/blog/1274292/202101/1274292-20210122182832368-824799190.png)
    复制代码
    S0:幸存1区当前使用比例
    S1:幸存2区当前使用比例
    E:伊甸园区使用比例
    O:老年代使用比例
    M:元数据区使用比例
    CCS:压缩使用比例
    YGC:年轻代垃圾回收次数
    FGC:老年代垃圾回收次数
    FGCT:老年代垃圾回收消耗时间
    GCT:垃圾回收消耗总时间
    复制代码
  • 相关阅读:
    CSS从大图片上截取小图标的操作以及三角形的画法
    CSS3样式问题
    spilt()的用法
    如何测试一个网站
    在C/C++中static有什么用途
    对集成测试中自顶向下集成和自底向上集成两个策略的理解
    缺陷记录应包含的内容?
    主键、外键的作用,索引的优点与不足
    什么是兼容性测试
    测试用例的作用
  • 原文地址:https://www.cnblogs.com/king8/p/14314682.html
Copyright © 2011-2022 走看看