Jmeter内存溢出原因及解决办法

修改jmeter内存配置(win&mac&linux) 阅读详情

2024软件测试面试刷题,这个小程序(永久刷题),靠它快速找到工作了!(刷题APP的天花板)-CSDN博客文章浏览阅读2.3k次,点赞85次,收藏11次。你知不知道有这么一个软件测试面试的刷题小程序。里面包含了面试常问的软件测试基础题,web自动化测试、app自动化测试、接口测试、性能测试、自动化测试、安全测试及一些常问到的人力资源题目。最主要的是他还收集了像阿里、华为这样的大厂面试真题,还有互动交流板块……https://blog.csdn.net/AI_Green/article/details/134931243?spm=1001.2014.3001.5502现在越来越多的小伙伴在压力测试过程中选择使用Jmeter,原因是这个工具开源且小巧,而且还支持二次开发。

但是事情都有两面性,利弊共存啊,对比商业软件Loadrunner,Jmeter在高并发,特别是大型项目的高并发,甚至是脚本运行时间过长时,压测机会出现严重卡顿甚至报异常————内存溢出,此时整个压测机几乎陷于瘫痪状态。

这让很多小伙伴十分的头大,那该怎样改善这个局面呢,今天我就给大伙支几招!

要想治病得知道病根,首先我们得了解下我们常说的内存溢出和内存泄漏到底是什么意思,它产生的原因是什么。

内存泄露是指程序在申请内存后,无法释放已申请的内存空间,一次内存泄露危害可以忽略,但内存泄露堆积后果很严重,无论多少内存,迟早会被占光。

内存溢出是指程序在申请内存时,没有足够的内存空间供其使用,出现out of memory;比如申请了一个integer,但给它存了long才能存下的数,那就是内存溢出。

内存泄漏是指你向系统申请分配内存进行使用(new),可是使用完了以后却不归还(delete),结果你申请到的那块内存你自己也不能再访问(也许你把它的地址给弄丢了),而系统也不能再次将它分配给需要的程序。

一个盘子用尽各种方法只能装5个果子,你装了6个,结果掉到地上不能吃了。这就是溢出!

比方说栈,栈满时再做进栈必定产生空间溢出,叫上溢,栈空时再做退栈也产生空间溢出,称为下溢。就是分配的内存不足以放下数据项序列,称为内存溢出。

通常都是由于内存泄露导致堆栈内存不断增大,从而引发内存溢出。在利用Jmeter测试过程中,如果内存溢出的话,一般会出现这个提示:

java.lang.OutOfMemoryError: Java heap space:意思就是堆内存溢出,不够用了。

说到堆栈内存,顺带简单介绍下堆栈的相关知识:

图片

内存溢出解决方法

内存溢出解决方法:调整堆内存大小

步骤:

  • 1. 内存溢出后是无法停止线程的,很多小伙伴急的抓耳挠腮,此时你只需要打开任务管理器,查看CPU排序最高的进程,点击结束进程即可;

  • 2、打开Jmeter安装文件(可以用notepad++或者editplus打开),bin目录下的Jmeter.bat文件:

3、找到set HEAP开头的内容,根据具体需要修改堆(heap)值大小,以及NEW分配的内存值大小:

这里默认值为:

set HEAP=-Xms1g -Xmx1g -XX:MaxMetaspaceSize=256m

将其修改为:

set HEAP=-Xms512m -Xmx8192m(调整堆内存的大小)

set NEW=-XX:NewSize=256m -XX:MaxNewSize=512m(调整堆内存中新生带的大小)

注意:JDK32位的电脑Xmx不能超过1500m,最大1378m.否则在启动Jmeter时会报错哦~

如何查看本机JDK的位数?

CMD下执行 java -version

一般而言,这个值不是越大越好,要根据压测使用的机器而定,堆的最大值不要超过物理内存的一半,否则容易导致Jmeter运行变慢、卡顿甚至内存溢出(因为java本身的垃圾回收机制是动态分配内存,调整时候其本身会占用很多内存),NEW分配的内存不宜太大,够用就行了!

  • 4、修改完成后,关闭文件,重启Jmeter既可以:

PS:当需要模拟的线程数较大时,就需要根据具体情况采用分布式压测的方式了,这种修改堆大小的方法只适用一部分情况,并不是万能的!

还有就是如果是对于大型项目的高并发,我们尽量使用Jmeter的非GUI界面更为稳妥,这样整个使用会更加的丝滑,可能有些小伙伴不太能适应非GUI的命令行操作,但是万事开头难,等你用习惯了就好,而且这也显得你更加的专业哦!(在命令行运行Jmeter时,一定要禁用“查看结果树”、“聚合报告”等监听器,因为真的很消耗内存。)

行动吧,在路上总比一直观望的要好,未来的你肯定会感谢现在拼搏的自己!如果想学习提升找不到资料,没人答疑解惑时,请及时加入群: 786229024,里面有各种测试开发资料和技术可以一起交流哦。

最后: 下方这份完整的软件测试视频教程已经整理上传完成,需要的朋友们可以自行领取【保证100%免费】在这里插入图片描述
软件测试面试文档
我们学习必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有字节大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

CentOS 7升级GCC踩坑记:明明装了centos-release-scl,为啥找不到devtoolset-9-gcc-c++? 本文详细记录了在CentOS 7系统中升级GCC时遇到的`devtoolset-9-gcc-c++`不可用问题及其解决方案。通过分析`centos-release-scl`安装不完整的原因,提供了从清理残留、重新安装仓库配置到完整安装devtoolset-9工具链的全套操作指南,帮助开发者彻底解决类似环境配置难题。 阅读详情

相关推荐

Excel也能玩转K-means聚类?手把手教你用表格搞定用户分群(附完整公式)

本文详细介绍了如何在Excel中实现K-means聚类算法,无需编程即可完成用户分群。通过SUMIF、SQRT等基础函数,从数据预处理到最终分群全流程手把手教学,特别强调数据标准化和迭代优化的关键步骤,帮助运营团队低成本高效分析用户行为数据。

weixin_30555125的博客 178

JMeter内存溢出原因及解决办法

JMeter内存溢出原因及解决办法 内存溢出解决方法:调整堆内存大小 1、windows环境下,修改jmeter.bat: 步骤: ①打开jmeter安装文件(可以用notepad++打开),bin目录下的jmeter.bat文件: ②找到set HEAP开头的内容,根据具体需要修改堆(heap)值大小,以及NEW分配的内存值大小: set HEAP=-Xms256m -Xmx256m set NEW=-XX:NewSize=128m -XX:MaxNewSize=128m 改为: set HEAP=-X

crystal_o的博客 4826

超详细流式细胞术全流程解析:从样本制备到结果分析全攻略

流式细胞术(Flow Cytometry)是现代生物学和医学研究中不可或缺的高通量分析技术,可实现对细胞表型、功能状态、细胞周期等多维度参数的快速检测。本文将从实验全流程出发,详解样本制备、上机操作、参数设置及结果处理的核心要点,帮助科研人员精准掌握流式实验关键技术。

good_rrrrr的博客 3854

JMeter:内存溢出解决办法

setenv.bat、setenv.sh的优先级高于jmeter.bat、jmeter.sh中的jvm参数,会覆盖该文件的jvm参数内容。

伤心的辣条 1930

西安电子科技大学841学长经验分享(总成绩第三名)

西安电子科技大学841学长经验分享(总成绩第三名)

qq_30953547的博客 1077

如何在Ubuntu 22.04上为AlphaFold3配置NVIDIA A100 GPU(含驱动安装避坑指南)

本文提供了在Ubuntu 22.04系统上为AlphaFold3部署NVIDIA A100 GPU的完整安装教程。内容涵盖从系统环境准备、NVIDIA驱动安装与避坑指南,到Docker容器化部署、数据库获取以及最终构建运行AlphaFold3的详细步骤,旨在帮助研究者和开发者高效配置高性能计算环境,充分发挥A100的硬件潜力。

nft7creator的博客 467

JMeter内存溢出及解决方法

可以优化您的测试脚本,避免使用一些复杂的逻辑和计算,或者使用一些内置的函数和变量,以减少内存的消耗。:可以关闭一些不必要的监听器和日志,例如图形化的监听器和详细的日志,这些都会占用大量的内存资源。内存溢出通常是由于内存泄露导致的,即应用程序使用了一些资源,但是没有及时释放,导致内存占用不断增加。:可以在jmeter的启动文件中,修改JVM的参数,增加堆内存的初始值和最大值,以及新生代内存的大小。:如果测试脚本过于复杂,那么jmeter需要执行更多的逻辑和计算,这也会消耗更多的内存资源。

cs888zsy的博客 927

⭐⭐⭐全网最详细YOLOv8教程,从环境配置到自己训练,再到数据集的制作,包的各位⭐⭐⭐

问题原因:当你“pip install ultralytics” 时,torch和torchvision会作为它的依赖一起安装了,当执行“pip install torch torchvision torchaudio --index-url。”时,会卸载torch,然后再安装torch+cuda版本,但是不会自动卸载torchvision已有版本,然后再安装torchvision+cuda版本。🎉🎉🎉恭喜各位道友,已经可以训练模型了,现在就是制作自己的数据集,所谓申神通秘境,随心所欲,万物皆可识别也

weixin_74840239的博客 7485

hive出现内存溢出_JMeter内存溢出原因及解决办法

JMeter是由著名开源软件巨头Apache组织开发的纯Java的压力测试工具,它既能测试动态服务(WebService),也能测试静态资源,包括Servlet服务、CGI脚本等,还能测试动态语言服务(PHP、Java、http://ASP.NET等)和数据库和FTP服务,测试结束之后能够根据测试的脚本配置和服务器配置情况,生成可视化的测试报告图表。本文我将以jmeter内存溢出原因及解决办法为例...

weixin_28706923的博客 357

QT C++ AI棉花智能变量灌溉工上位机(信创完整版)

北斗履带灌溉机器人/田间分区电磁阀基站 → 多层土壤温湿度/盐分EC传感器实时采集墒情 → 双目AI视觉扫描棉田长势、病苗分布 → AI融合**生育期+土壤墒情+盐分+棉株长势**计算变量灌溉定额、水肥配比、灌溉时长 → 分区电磁阀/变频水泵变量供水,病弱苗地块减量、干旱地块增量;墒情、盐分、长势多因子闭环修正灌水量;多层土壤含水率(0–10/20–40/40–80cm)、土壤EC盐分、土壤温度、空气温湿度、蒸发量、北斗地块坐标、管道水压、水肥罐液位、分区流量计、水泵电机负载、滴灌带压力反馈。

寒寒豆豆软件公司的博客 179

YOLO + Qwen3-VL-Seg 深度诊断:双引擎协同完成AI质检

本文提出了一种创新的工业质检双引擎架构,结合YOLO实时检测与Qwen3-VL-Seg精细化诊断,有效解决了传统检测方法中检测与诊断割裂的问题。YOLO部署在边缘端实现高效定位(3.2MB模型,<10ms延迟),Qwen3-VL-Seg在云端完成语义级缺陷分析(仅17M参数的解码器实现像素级分割)。该方案通过6步闭环流程,从实时感知到工艺反哺,显著提升了工业质检的准确性和可解释性,为智能制造提供了从"发现"到"解决"的完整技术路径。

mingo_敏 210

jmeter ramup设置_JMeter内存溢出原因及解决办法

JMeter是由著名开源软件巨头Apache组织开发的纯Java的压力测试工具,它既能测试动态服务(WebService),也能测试静态资源,包括Servlet服务、CGI脚本等,还能测试动态语言服务(PHP、Java、http://ASP.NET等)和数据库和FTP服务,测试结束之后能够根据测试的脚本配置和服务器配置情况,生成可视化的测试报告图表。本文我将以jmeter内存溢出原因及解决办法为例...

weixin_39785814的博客 324

【宝藏级】全网最全的Pandas详细教程(2万字总结)

【回炉重造】Python之Pandas详细教程前言为什么要学习pandas?什么是Pandas?官网1. Pandas的索引操作索引对象Index {#索引对象index}1. Series和DataFrame中的索引都是Index对象2. 索引对象不可变,保证了数据的安全常见的Index种类Series索引 {#series索引}1. index 指定行索引名2. 行索引3. 切片索引4. 不连续索引5. 布尔索引DataFrame索引1. columns 指定列索引名2. 列索引3. 不连续索引高级索引

全网粉丝30W+,CSDN、稀土掘金人工智能领域签约作者,人工智能、大模型、Python 爬虫,商务合作,请私信沟通。 6万+

java bufferedreader读大文件会内存溢出吗_JMeter内存溢出原因及解决办法

JMeter是由著名开源软件巨头Apache组织开发的纯Java的压力测试工具,它既能测试动态服务(WebService),也能测试静态资源,包括Servlet服务、CGI脚本等,还能测试动态语言服务(PHP、Java、http://ASP.NET等)和数据库和FTP服务,测试结束之后能够根据测试的脚本配置和服务器配置情况,生成可视化的测试报告图表。本文我将以jmeter内存溢出原因及解决办法为例...

weixin_39709674的博客 1157

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

调整jmeter5内存_Jmeter:内存配置 -- 转发

在压测过程中jmeter报内存溢出,可能的原因有很多。要注意下面三点:1、单击压测过程中使用过多的线程,官网建议1000-2000。具体看机器的配置和启动应用的情况。(A single JMeter client running on a 2-3 GHz CPU (recent CPU) can handle 1000-2000 threads depending on the type of t...

weixin_33410914的博客 1056

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

常见的8个JMeter压测问题

答案:JMeter报告中显示的并发用户数可能受到多个因素影响,包括测试环境、目标服务器性能和JMeter本身的配置等。答案:断言失败错误意味着期望的响应结果与实际结果不符,可能是由于服务器端问题、脚本错误或断言设置不正确引起的。优化JMeter的配置,包括线程组设置、Ramp-up时间、循环次数等,以保证并发用户数的准确性。检查脚本中的参数和变量传递是否正确,确保脚本中使用的参数与服务器期望接收的相匹配。检查目标服务器的性能和稳定性,避免出现因服务器端代码或配置问题引起的死锁或卡住。

OKC_0_Westbrook的博客 1217

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

Jmeter之分布式测试/压测

Jmeter做分布式测试的原因: 测试机器的配置低,对服务器进行压测时,造成不了压力。 jmeter并发10000后,测试机就已经卡顿了,而且测试结果有大量失败(忽略了jmeter自身问题=。=|||)~ 此现象又称:Jmeter内存溢出 可以对jmeter的内存进行修改,参考网址:https://www.cnblogs.com/imyalost/p/7901064.html 由于我用...

weixin_30279315的博客 226

Jmeter自动化性能测试常见问题!

这样随着请求的愈来愈多,端口就会变得愈来愈少,因此端口很快耗尽,并且大多数端口都处于 time_wait 状态,若是服务器端也支持长链接,那么下次请求来了,就会在上次请求的通道上继续传输,端口使用率大大的下降,就有效的避免了端口耗尽问题。这个值不是越大越好,要根据压测使用的机器而定,一般而言,堆内存的最大值不要超过物理内存的一半,否则容易导致 jmeter 运行变慢、卡顿甚至内存溢出(因为java本身的垃圾回收机制是动态分配内存,调整的时候其本身会占用很多内存),NEW分配的内存,不宜太大。

okcross0的博客 2177
上一篇: 如何在Sprint中管理UI测试?
下一篇: 软件测试,功能测试转测开容易吗?
软件测试君
博客等级 码龄8年 2万+粉丝 2919原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值