JMeter JMeter自身运行性能优化
JMeter自身运行性能优化
by:授客 QQ:1033553122
测试环境
apache-jmeter-2.13
1. 问题描述
单台机器的下JMeter启动较大线程数时可能会出现运行报错的情况,或者在运行一段时间后,JMeter每秒生成的请求数会逐步下降,直到为0,即JMeter运行变得很“卡”。
2. 解决方法
1)设置JVM内存
找到JMeter bin目录下的jmeter.bat文件,notepad等文本工具打开,编辑
找到如下内容,
rem See the unix startup file for the rationale of the following parameters,
rem including some tuning recommendations
set HEAP=-Xms512m -Xmx512m
set NEW=-XX:NewSize=128m -XX:MaxNewSize=128m
set SURVIVOR=-XX:SurvivorRatio=8 -XX:TargetSurvivorRatio=50%
set TENURING=-XX:MaxTenuringThreshold=2
修改带背景色,文字带颜色内容如下
set HEAP=-Xms2048m -Xmx2048m
set NEW=-XX:NewSize=640m -XX:MaxNewSize=640m
说明:
-Xms512m:初始化堆内存大小 -Xmx512m:最大堆内存大小,这里的内存大小建议为512的整数倍,可以根据机器实际内存进行合理的设置,建议最大值-Xmx不要超过剩余物理内存的50%
通常会将 -Xms 与 -Xmx两个参数的配置相同的值,其目的是为了能够在java垃圾回收机制清理完堆区后不需要重新分隔计算堆区的大小而浪费资源
set NEW=-XX:NewSize=640m -XX:MaxNewSize=640m
1)-XX:newSize:新生代初始内存的大小,应该小于 -Xms的值
2) -XX:MaxnewSize:表示新生代可被分配的内存的最大上限;当然这个值应该小于-Xmx的值,因为新生代占内存来自整个堆内存。为了优化GC(内存垃圾回收),最好设置-XX:MaxnewSize值约等于-Xmx的1/3
注意:jvm在执行GC时,会停止工作。MaxnewSize的增大,可以降低GC频率,
2)指定测试结果数据存储文件

如上,JMeter中很多插件都提供了结果文件存储设置,为了避免请求测试结果数据都存储到JVM内存(因常驻数据无法回收,量大的话会很快压垮jmeter),需要为插件指定一个文件,把数据存储到该文件,测试前务必要进行这类设置检查。
另外,通常结果文件要保存为CSV格式(比起xml格式,可以少写入好多数据)
3)针对某些监听器,设置仅记录错误日志
根据第二点的分析,针对某些监听器(比如查看结果树),我们只需关注错误日志信息的情况下,需要勾选“仅日志错误”,这样只会保存错误日志到内存,数据不会多。
4)通过保存的结果文件“重绘”测试监听结果图表
针对一些不需要在测试过程中“实时”查看的测试“监听器”图表,可以考虑“线下”生成图表。具体做法如下所例。
eg:


如上图,这里添加了监听器“聚合报告”,插件,因为我们需要查看相关数据,比如吞吐量,请求耗时等,但是我们不需要实时查看结果,所以把对监听结果“聚合报告”给禁用了(更重要的别因是聚合报告非常消耗CPU。
然后,我们添加了监听器“Simple
Data Writer”,并设置结果数据存放文件(例子中为“测试结果.csv”),如果有必要的话还可以点击Configure设置需要保存的条目,文件格式等(通常默认设置就可以了)
注:Simple
Data Writer:该监听器可用于记录测试结果到某个文件,但不提供ui展示。
最后,等测试完成后,我们在插件控制面板中,点击浏览按钮,打开上述保存的文件,结果如下,可以看到生成的分析数据了。

注意:
1)Log/Display
Only:
仅错误日志Successes

这里如果勾选了仅错误日志,那么记录数据、展示数据的时候只会记录/展示错误日志,如果勾选了Successes,则只会记录/展示成功执行的记录,两个都不勾选,则默认记录全部信息。这点针对其它插件也是如此
2)打开保存的数据文件,默认会分析数据文件中的所有内容,所以,每次执行前都应该重新命名结果文件(可以在输入框中直接输入新的文件名,或者找到存储目录下,备份结果文件后,把结果文件删了),防止每次测试的数据都写入到一个文件里,叠加统计了。这点针对其它插件也是如此
3)每次打开保存的结果数据文件之前,要点击工具栏的
清除、清除全部按钮,清除展示的数据,否则展示的数据会在上次的基础上叠加显示。这点针对其它插件也是如此
JMeter JMeter自身运行性能优化的更多相关文章
- Jmeter之tomcat性能测试+性能改进措施
Jmeter用于tomcat性能测试,因为项目部署在tomcat,正常情况下,一个tomcat可以承受500个并发,通过修改配置,及其相关的tomcat优化,可以承受到1000个并发. 如何测试tom ...
- jmeter命令行运行-分布式测试
上一篇文章我们说到了jmeter命令行运行但是是单节点下的, jmeter底层用java开发,耗内存.cpu,如果项目要求大并发去压测服务端的话,jmeter单节点难以完成大并发的请求,这时就需要对j ...
- 总结使用Unity 3D优化游戏运行性能的经验
原地址:http://www.gameres.com/msg_221889.html 作者:Amir Fasshihi 流畅的游戏玩法来自流畅的帧率,而我们即将推出的动作平台游戏<Shadow ...
- 4月27号开学! 第6期《jmeter实战接口自动化+性能》课程,零基础也能学
2019年 第6期<jmeter实战接口自动化+性能>课程,4月27号开学! 主讲老师:飞天小子 上课方式:QQ群视频在线教学 本期上课时间:4月27号-6月9号,每周六.周日晚上20:0 ...
- (转)总结使用Unity 3D优化游戏运行性能的经验
http://www.199it.com/archives/147913.html 流畅的游戏玩法来自流畅的帧率,而我们即将推出的动作平台游戏<Shadow Blade>已经将在标准iPh ...
- [转]总结使用Unity 3D优化游戏运行性能的经验
转载自:http://www.gameres.com/msg_221889.html 作者:Amir Fasshihi 流畅的游戏玩法来自流畅的帧率,而我们即将推出的动作平台游戏<Shadow ...
- Jmeter非GUI运行,生成html报告
一.JMete执行方式 JMeter执行方式有2种,一种是GUI模式,一种是非GUI模式.GUI模式就是界面模式,非GUI模式就是命令行模式.界面模式主要用来编写和调试脚本用的,项目的真正执行最好是采 ...
- 【转载】总结使用Unity3D优化游戏运行性能的经验
流畅的游戏玩法来自流畅的帧率,而我们即将推出的动作平台游戏<Shadow Blade>已经将在标准iPhone和iPad设备上实现每秒60帧视为一个重要目标. 以下是我们在紧凑的优化过程中 ...
- 网络流量分析——NPMD关注IT运维、识别宕机和运行不佳进行性能优化。智能化分析是关键-主动发现业务运行异常。科来做APT相关的安全分析
科来 做流量分析,同时也做了一些安全分析(偏APT)——参考其官网:http://www.colasoft.com.cn/cases-and-application/network-security- ...
随机推荐
- maven 下载镜像文件卡,下载pom文件慢的问题
问题原因: maven默认的镜像库URL为 http://maven.net.cn/content/groups/public/ 由于网络原因,可能导致响应速度超级慢,或者无法效应: 解决方法: 配置 ...
- python库函数Map, Filter and Reduce的用法
python中有三个函数式编程极大的简化了程序的复杂性,这里就做一下讨论和记录. 一 Map:应用在链表输入所有元素的函数,它的格式如下所示: map(function_to_apply, list_ ...
- Data - 关于大数据
历史与趋势 大数据的前世今生:诞生.发展.未来? 如何利用数据赚钱?大数据价值变现的10种商业模式及利弊分析 10大行业大数据应用痛点及解决策略 大数据凉了?不,流式计算浪潮才刚刚开始 概念与定义 关 ...
- iOS-Xcode解决【workspace integrity couldn't load project'】
出现如标题提示的项目打不开情况,多半可能是因为Xcode版本不同,或者是SVN/Git使用导致 解决办法一: 删除冲突代码,"项目文件->Pod文件夹->Pods.xcodepr ...
- Python爬虫——反爬
反爬概述 网络爬虫,是一个自动提取网页的程序,它为搜索引擎从万维网上下载网页,是搜索引擎的重要组成. 但是当网络爬虫被滥用后,互联网上就出现太多同质的东西,原创得不到保护. 于是,很多网站开始反网络爬 ...
- Python基础教程(第3版) 笔记(二)
1.8模块Python提供了完成(某人的年 龄为32.9,并想将这个值向下圆整为32,因为他还没有满33岁)这种任务的函 数floor.导入模块,可以使用特殊命令import.函数floor包含在模块 ...
- [视频]K8飞刀 S2-020 exploit getshell 动画教程
[视频]K8飞刀 S2-020 exploit getshell 动画教程 链接:https://pan.baidu.com/s/1G5x7Dcu6pzHz6ZfSCDDmKA 提取码:05kw
- 大牛是怎么思考设计MySQL优化方案
在进行MySQL的优化之前,必须要了解的就是MySQL的查询过程,很多查询优化工作实际上就是遵循一些原则,让MySQL的优化器能够按照预想的合理方式运行而已. 1.优化的哲学 注:优化有风险,涉足需谨 ...
- Kafka项目实战-用户日志上报实时统计之编码实践
1.概述 本课程的视频教程地址:<Kafka实战项目之编码实践> 该课程我以用户实时上报日志案例为基础,带着大家去完成各个KPI的编码工作,实现生产模块.消费模块,数据持久化,以及应用调 ...
- Hadoop2源码分析-RPC探索实战
1.概述 在<Hadoop2源码分析-RPC机制初识>博客中,我们对RPC机制有了初步的认识和了解,下面我们对Hadoop V2的RPC机制做进一步探索,在研究Hadoop V2的RPC机 ...