性能测试JMeter趟的坑之JMeter的bug:TPS周期性波动问题

先说下问题

我在做性能测试时,使用JMeter搞了100个并发,以100TPS的压力压测十分钟,但压力一直出现波动,而且出现波动时JMeter十分卡,如下图:

周期性TPS波动

各种推测:

所以开始找环境的各种原因,起初以为是JMeter的连接被“劫持”了,不然JMeter也不会卡的。所以,花了整整一下午时间,去排除压测机环境、被压测环境(TCP连接数、程序上的问题等等),但一直没找到原因。后来,换成LR后,压测正常。所以开始怀疑是JMeter自身的问题。

原因找到

后来想起来,我被测场景的脚本是老的脚本,也是在JMeter2.8上的,然后我现在用的JMeter是2.13,难道是脚本的兼容性问题?

问题解决

各种替换,最后才定位到了是CSV Data Set Config的问题,只要我用2.8的脚本上的CSV Data Set Config进行参数化,哪怕是这个参数我没有用,一压测就出现TPS波动;我禁用后,新建了一个CSV Data Set Config,所有数据保持不变,再次压测,OK! 这个坑真大!希望Apache组织能够修改下,肯定是老版本的CSV Data Set Config在新版本的JMeter压测时,调度存在问题,导致本地的压力不稳定,而且关键的是,这个导致JMeter太卡了。问题解决后的压力如下:稳稳的,我要稳稳的幸福~

下图很稳定了,波动在3TPS范围

还有其他坑

PS:另外,再给大家补充个坑,就是JMeter插件的资源监控问题,将agent放到Linux上去监控资源,cpu和内存都没什么问题,但如果你监控tcp的连接话,就要注意了,这个监控可以吃掉15%左右cpu资源,4核单板的喔,而且是sys的cpu高很多。应该是这块监控的算法不够优化,占用了太多的资源。请各位JMeter使用者千万注意咯!

By:Fresh.Qin  

版权声明:本文为博主原创文章,未经博主允许不得转载。

时间: 2024-10-12 23:02:06

性能测试JMeter趟的坑之JMeter的bug:TPS周期性波动问题的相关文章

性能測试JMeter趟的坑之JMeter的bug:TPS周期性波动问题

先说下问题: 我在做性能測试时,使用JMeter搞了100个并发,以100TPS的压力压測十分钟,但压力一直出现波动.并且出现波动时JMeter十分卡,例如以下图: 周期性TPS波动 各种猜測: 所以開始找环境的各种原因,起初以为是JMeter的连接被"劫持"了,不然JMeter也不会卡的.所以,花了整整一下午时间.去排除压測机环境.被压測环境(TCP连接数.程序上的问题等等),但一直没找到原因. 后来.换成LR后,压測正常.所以開始怀疑是JMeter自身的问题. 原因找到: 后来想起

Jmeter初步使用三--使用jmeter自身录制脚本

今日,小编在网上看到很多人使用badboy来录制,然后再把jmx脚本弄到Jmeter上做性能测试.这种方法在小编刚用Jmeter时也曾经用过,但是感觉太麻烦了,所以就找了下其它资料.结果,小编偶然发现,Jmeter也是自带录制功能的,然后小编兴高采烈的去尝试.尝试的结果很满意,比用badboy方便多了(小编的感受).好了,现在我们就开始学习怎么使用Jmeter自身来录制脚本. 首先,打开Jmeter,在上面添加一个线程组,在该线程组下添加简单控制器.如下图所示: 接着,在工作台添加HTTP代理服

Jmeter学习(一)—Jmeter使用入门

一 Jmeter安装 1 安装并配置JDK 2 登录 http://jmeter.apache.org/download_jmeter.cgi ,根据自己平台,下载对应文件 3 解压后即可直接运行 /bin/jmeter.bat 注意:打开的时候会有两个窗口,JMeter的命令窗口和JMeter的图形操作界面,不可以关闭命令窗口. 二 安装插件管理器 1 插件下载地址: http://jmeter-plugins.org/downloads/all/ 2 下载插件管理器后放到 apache-jm

Jmeter - 在Linux环境安装Jmeter - 在Windows环境安装Jmeter

当配置完Jmeter运行的环境之后,就可以开始安装Jmeter了. 为什么既要告诉各位"在Linux系统内安装Jmeter",又要告诉各位"在Windows系统内安装Jmeter"?因为当我们在构建1个测试计划的步骤是: (1)首先,Windows的Jmeter图形化窗口内,构建1个测试计划 (2)然后,把构建好的这个测试计划上传到Linux系统的测试机 (3)最后,在Linux系统的测试机,用Jmeter做性能测试 也就是说,我们在Windows.Linux的电脑上,都会用到Jmeter. 那

Jenkins+Ant+Jmeter 自动化性能测试平台之填坑篇

一.前言 搭建Jenkins+Ant+Jmeter 自动化性能测试平台过程中,坦白说遇到了很多坑...写这篇博文的目的,除了总结经验方便自己以后查阅之外,也为了方便他人遇到相同的坑时,可以快速找到原因并解决.下面开始我漫长的填坑之路~~ 二.填坑之路 1.build.xml中<project name="ant-jmeter-test" default="run" basedir=".">这行代码怎么理解? default:run为b

Jmeter遇到的坑

一.分布式获取不到结果需要改配置文件   在jmeter.properties文件找到mode=Standard去掉# 二.有一个请求要循环查询进度,当进度为100为,跳出循环.这个要怎么操作? ${__javaScript(${progress}<100,)} 这样就ok了 三.性能调优的几点原则: 从简单的开始 从容易调优的开始 从损耗大的开始 从熟悉的领域开始 所以我最烦动不动就要从代码开始调优的.所以我最烦动不动就要从代码开始调优的.把业务场景撸顺啦,把数据结构调整调整,把存储过程调整调

Jmeter初步使用二--使用jmeter做一个简单的性能测试

经过上一次的初步使用,我们懂得了Jmeter的安装与初步使用的方法.现在,我们使用Jmeter做一个简单的性能测试.该次测试,提交的参数不做参数化处理,Jmeter各元件使用将在介绍在下一博文开始介绍并使用. 首先,打开Jmeter工具,并建立一个测试计划(测试脚本).启动jmeter后,jmeter会自动生成一个空的测试计划,我们可以基于该测试计划建立自己的测试计划. 步骤: 步骤一:添加线程组 一个性能测试请求负载是基于一个线程组完成的.一个测试计划必须有一个线程组.测试计划添加线程组非常简

性能测试脚本新玩法---fiddler&amp;&amp;Jmeter

飞测说:最近接触移动项目,测试app,需要做移动app的性能测试,想通过代理来录制,但是jmeter的代理录制效果真心不是很好,自己一个个请求来写代码,太浪时间了,那么有没有其他的办法呢? 我们都知道fiddler用来抓取app的数据请求十分方便,如果我们将这些抓到请求直接给jmeter,那不是很省事,有了这个想法,周末这两天在家捣鼓着,于是有了我们下面的介绍和分享. 1.从网上找了VS2013的安装包,安装该软件(过程比较耗时,和女朋友出去打了一个小时的羽毛球,回来就安装好了),新建一个类库的

性能测试监控平台:InfluxDB+Grafana+Jmeter

前面的博客介绍了InfluxDB.Telegraf.Grafana的安装和使用方法,这篇博客,介绍下如何利用这些开源工具搭建性能测试监控平台... 前言 性能测试工具jmeter自带的监视器对性能测试结果的实时展示,在Windows系统下的GUI模式运行,渲染和效果不是太好,在linux环境下又无法实时可视化. 因此如果有一个性能测试结果实时展示的页面,可以提高我们对系统性能表现的掌握程度,另一方面也提高了我们的测试效率. InfluxDB+Telegraf+Grafana+Jmeter的框集成