zoukankan      html  css  js  c++  java
  • jmeter内存溢出解决办法

    Jmeter内存溢出原理以及解决办法

    1、Jmeter内存溢出错误如下:

    image-20210425101159678

    由于我使用jmeter测试时,使用的是GUI图形化界面,后台日志可以看到描述的是:“请不要使用GUI模式,如果仅用于测试创建和测试调试,使用cli模式(命令行模式)或者增大java堆内存去满足你的测试需求”

    解决办法:

    (1)使用CLI命令行模式(建议)

    如果只是为了测试创建和调试,使用命令行模式即可,命令行模式也可以输出报告,然后可以通过jmeter的GUI界面打开查看。

    Jmeter官方文档地址: https://jmeter.apache.org/usermanual/get-started.html

    官方文档中说明:GUI图形化界面应该仅仅用于创建测试脚本也就是jmx文件,CLI模式用于负载测试

    image-20210425103742491

    日志中提示可以使用如下命令运行CLI模式:

    jmeter -n -t [jmx file] -l [results file] -e -o [Path to web report folder]
    

    官方文档中对参数的描述:

    image-20210425102901903

    使用时,先根据jmeter的GUI界面创建任务保存为一个jmx文件,然后使用:

    jmeter -n -t jmx文件路径 -l “指定结果输出的路径/result.jtl” -e -o "生成报告的输出文件夹"
    

    例如:

    jmeter -n -t "E:jmeter	est.jmx" -l "E:jmeter任务_50.jtl" -e -o "E:jmeterjmeter0425"
    

    (2)增加java堆内存大小

    • 如果必须要使用GUI模式,查看运行过程中的情况,那就考虑增加java堆大小,根据自己系统内存选择,尽量不要超

    windows环境下

    打开jmeter.bat文件:

    image-20210425104104188

    可以看到图片中第一部分:描述堆内存大小,默认初始化堆内存和最大堆内存都是1g,最大元数据空间为256m。这个内存对于普通的电脑来说已经比较大了。

    如果只是调整堆内存大小,可以修改“-Xms”和“-Xmx”的值。

    (3)分析内存溢出原理

    根据jmeter.bat文件图中第二部分可以知道:GC垃圾回收默认使用的是G1GC并发垃圾回收器,最大GC暂停时间为100。

    图中第三部分:描述的是当有OutOfMemory内存溢出时,输出当时jvm的堆内存信息到dump文件,在第一个报错的图中可以看到有dump文件生成。

    image-20210425105011300

    windows环境默认生成路径在bin目录下。

    使用java自带的jvisualvm工具打开查看堆dump文件。这里我们打开java_pid2332.hprof文件。

    image-20210425112206553

    • 双击打开jvisualvm程序

    • 点击文件,选择装入

    image-20210425112427910

    • 选择要装入的文件

    image-20210425112530803

    • 装入完成后,点击“类”可以看到有两个类对象实例占用内存大小90%左右,如果想看该类更详细的内容,双击l类名进行查看

    image-20210425112927967

    在官方文档中查看TableSample类,

    image-20210425113411911

    图中这句话翻译后:该类用来来保存TableVisualiser的数据,大概就是保存GUI图形化界面上的表格数据。

    由此分析,如果使用GUI图形化界面去进行跑任务测试,并且添加了某些数据监视器,运行中的数据都会加载到jvm内存中,最终导致内存溢出。

    所以最好还是根据官方文档中说的仅使用GUI图形化界面来创建任务的jmx文件,使用CLI命令行模式去运行任务。

  • 相关阅读:
    .NET框架程序设计三个概念:.NET,.NET平台(PlatForm),.NET框架(Framework)
    解决AVI格式的文件不能删除的问题
    加载项目失败的解决办法
    由Codebehind所引发的
    由Duwamish学习web.config的配置
    JDK、JRE、JVM之间的关系
    hadoop等的下载地址
    eclipse代码自动补全
    UML 类图中的几种关系
    fedora 14 的163的yum源
  • 原文地址:https://www.cnblogs.com/YpfBolg/p/14701503.html
Copyright © 2011-2022 走看看