Jmeter分布式

在进行性能测试的时候,随着压力的不断增大,会出现tps的瓶颈。

出现瓶颈,会有两个原因,1.服务器导致的瓶颈 ,2压力不够。

如果是压力不够的情况,要么换更好的机器进行压测,或者多台机器进行分布式压测。

Jmeter 如何开展分布式?

原理如下:

1.Jmeter分布式压测时,一台机器作为master,其他的则为slave,master负责请求的分发,slave负责执行。

2.执行时,master会把脚本发送到每台slaver上,slaver 拿到脚本后就开始执行,slaver执行时不需要启动GUI,如果引用到csv等外部的文件,则每台slaver所在的机器都需要相应位置放置该文件。

3.执行完成后,slaver会把结果回传给master,master会收集所有slaver的信息并汇总。

这里有一个坑,如果slave 和master是多网卡的机器,master去slave执行的时候,会把网卡中的任意一个网卡ip传过去,最后slave执行完后,把结果回传给master,如果这时回传给master是一个错误的ip,则会导致请求超时的情况,导致失败。

正确步骤如下:

1.启动slave,在slave机中jmeter-server中

windows 修改RMI_HOST_DEF=-Djava.rmi.server.hostname=10.120.11.82(slave机的ip)

运行jmeter-server,Windows运行jmeter-serve.bat

linux:

./jmeter-server -Djava.rmi.server.hostname=10.120.11.82(slave机的ip)

2.启动master

双网卡需要注意:master机需要指定自己机器的ip,要不则会出问题。

window:

新增set rmi_host=-Djava.rmi.server.hostname=10.120.11.214(master 的ip)

修改set ARGS=%DUMP% %HEAP% %NEW% %SURVIVOR% %TENURING% %PERM% %DDRAW% %rmi_host%

linux:

新增 rmi_host=“-Djava.rmi.server.hostname=10.120.11.214”(master 的ip)

修改ARGS="$SERVER $DUMP $HEAP $NEW $SURVIVOR $TENURING $PERM $CLASS_UNLOAD $rmi_host"

修改完了后,开始压力测试:

windows:

修改jmeter.properties,

remote_hosts=10.120.11.82:1099(更换为slave的ip)

远程启动这台机器

linux:

./jmeter -n -t testPlan.jmx  -R 115.28.108.130 -l remote.jtl

linux下运行结果存在remote.jtl中。

注意:master和slave机中的jmeter版本必须一致(小版本也得一致)。

java的版本也得一致,不能一个java7一个java8.

时间: 2024-11-06 22:06:18

Jmeter分布式的相关文章

Jmeter 分布式测试

Jmeter 是Java 应用,对于CPU和内存的消耗比较大,因此,当需要模拟数以千计的并发用户时,使用单台机器模拟所有的并发用户就有些力不从心,甚至会引起JAVA内存溢出错误.为了让jmeter工具提供更大的负载能力,jmeter短小精悍一有了使用多台机器同时产生负载的机制. 那么,是如何实现多台负载机同时运行的呢?当然不会多个人坐在多台负载机面前,一喊开始,大家同时启动jmeter.这种方式很笨,也很难达到真正的同步.其实,我们通过单个jmeter 客户端就可以控制多个远程的jmeter服务

Jmeter分布式测试

在使用Jmeter进行性能测试时,如果并发数比较大(比如最近项目需要支持1000并发),单台电脑的配置(CPU和内存)可能无法支持,这时可以使用Jmeter提供的分布式测试的功能. 一.Jmeter分布式执行原理: 1.Jmeter分布式测试时,选择其中一台作为调度机(master),其它机器做为执行机(slave). 2.执行时,master会把脚本发送到每台slave上,slave 拿到脚本后就开始执行,slave执行时不需要启动GUI,我理解它应该是通过命令行模式执行的. 3.执行完成后,

Jmeter分布式部署

当并发数达到一定值,Jmeter会消耗大量内存和cpu,单机就可能会遇到性能瓶颈,测试结果的准确性会很没有保障.这时,就要考虑分布式压力测试. Jmeter分布式测试时,需要选择其中一台作为调度机(master),其它机器做为执行机(slave),master通过远程启动执行,执行完成后,slave会把结果回传给master,master会收集所有slave的信息并汇总. 分布式配置 1.执行机配置 1)安装jmeter和jdk,配置java环境变量 2)启动bin目录下的:jmeter-ser

【Fine原创】JMeter分布式测试中踩过的那些坑

最近因为项目需要,研究了性能测试的相关内容,并且最终选用了jmeter这一轻量级开源工具.因为一直使用jmeter的GUI模式进行脚本设计,到测试执行阶段工具本身对资源的过量消耗给性能测试带来了瓶颈,一般线程加到100左右就会出现工具本身无法支撑的问题,广泛了解解决办法后,发现分布式部署测试机仍是首选方案. 关于如何配置jmeter分布式部署测试机很多博客上已经描述得很详细了,这里就不再赘述,可以参考虫师的博客: http://www.cnblogs.com/fnng/archive/2012/

jmeter分布式环境

搭建jmeter分布式环境 (1)确定分布式结构,即1台机器部署master.几台机器部署slave? (2)将相同版本的jmeter分别拷贝到这几台机器 (3)修改master节点的jmeter配置,修改如下两个文件 修改apache-jmeter-3.0/bin/jmeter.properties 文件,在这个文件中增加如下配置: remote_hosts=xx.xx.xx.xx1:1080,xx.xx.xx.xx2:1081,xx.xx.xx.xx3:1082     ------说明:这

jmeter分布式集群测试

Jmeter分布式集群测试 我们在使用Jmeter进行性能测试的时候,如果并发数较大(比如项目需要支持1000个并发),单台电脑的配置(内存.CPU)可能无法支持,这种情况下我们可以使用Jmeter提供的分布式测试的功能.下面就介绍一下分布式原理.配置流程. 1.  分布式原理 Jmeter分布式测试时,选择一台机器作为控制机,其他机器作为执行机.执行时,控制机会把脚本发到执行机上,执行机开始执行,执行完毕后,会把结果回传到控制机. 2.  配置流程 2.1执行机配置 第一步:在执行机上安装Jm

转 : jmeter分布式测试的坑

有关jmeter分布式测试的环境配置,大概就是那样,但是每次想要进行jmeter分布式测试的时候,总是会有各种奇怪的问题,下面整理了一些可能遇到的坑. 只要错误中出现:Error in rconfigure() method java.rmi.ConnectException:Connection refused to host:10.10.34.21;nested exception is:java.net.ConnectException:connection timed out:conne

Jmeter分布式测试的坑

有关jmeter分布式测试的环境配置,大概就是那样,但是每次想要进行jmeter分布式测试的时候,总是会有各种奇怪的问题,下面整理了一些可能遇到的坑. 问题:如果你的服务器名字和报错的时候显示的服务器名不一致(refuse to host:10.10.34.21,而服务器名明明是172.16.129.43) 方案:这是服务器双网卡造成的问题 在linux上 修改jmeter-server RMI_HOST_DEF=-Djava.rmi.server.hostname=slave机器名 在wind

jmeter 分布式集群

Jmeter压测过程中,由于测试机配置有限,CPU.内存都可能是存在瓶颈.如果使用很大的并发进行测试时,就可能会感到程序比较卡,这时候就无法继续增加压力了. 解决方法: 搭建Jmeter分布式集群,远程启动测试. 步骤如下: 1.在分布式集群中,脚本编辑.控制的机器叫做"client",实际运行Jmeter测试脚本,负责向被测服务器发请求的机器,称为"server".网络要求server和client需要网络互通.找几台机器作为 server,然后client和se