jmeter分布式压测

JMeter5.0 分布式操作部署笔记

当JMeter处理高并发,当一台机器调了JVM还不够测试时,就可以使用分布式的形式来进行分压,分布式简单的说就是由一台控制机去启动JMeter配置相关参数后,通过java的RMI(Remote Method Invocation)远程到其他机器(执行机)进行负载。

 

当在处理高并发总是卡住的时候,可先尝试设置JVM(如果还没法解决,就搞个分布式)

打开jmeter.bat 搜set heap

根据自身机器内存来设置虚拟内存即可:(一般别设置太大)

set HEAP=-Xms2g -Xmx8g -XX:MaxMetaspaceSize=8g

 

分布式部署步骤:

1. 控制机和执行机的JMeter和jdk版本尽量保持一致,环境配置得配好(JMeter5.0,jdk1.8.0)

2. 双击打开控制机中bin目录下的create-rmi-keystore.bat

填写完相关信息后,回车:

回车后,会在bin目录下产生以下文件:

把已生产的 rmi_keystore.jks 文件拷贝到执行机的bin目录下

 

3. 找到执行机中bin目录下的jmeter.properties,打开jmeter.properties

 

搜remote_host,取消注释,把后面的IP改为本机IP

搜server_port,默认端口号为1099(在端口没冲突的情况下,可不改;Windows查看1099端口是否被占用: netstat -ano|findstr '1099'),也可以自定义,改为你需要的端口,我这边改成了2099

搜rmi.ssl.disable=false,取消注释,修改false为true,

 

实际就是修改一下3点:

remote_hosts=192.168.1.197(本机IP)

server_port=2099(端口号)

server.rmi.ssl.disable=true(改false为true)

 

4. 双击启动jmeter-server.bat ,启动完后如下图:

 

5. 回到控制机,找到jmeter.properties,和执行机类同,先改两项:

server_port=2099(端口号)

server.rmi.ssl.disable=true(改false为true)

 

再改remote_hosts=192.168.1.197:2099,192.168.1.122:2099

(有1台执行机ip:端口,1台控制机ip:端口)

若还有更多执行机之间以英文逗号隔开。

把控制机的ip:端口设置进去,当运行的时候也可以把自己的控制机当执行机来运行,这样就能达到2台机器负载。

设置完之后  找到jmeter-server.bat 双击打开

 

6. 打开jmeter.bat已经设定好的脚本:

(假设设置的线程数是1,那么有N台执行机的话,实际并发数是N*1)

 

选择远程启动:(进行单个测试)

 

选择远程启动所有:(所有机器一起启动)

 

跑完之后,jmeter-server窗口:

控制机显示:

找到  jmeter.properties

取消  mode=Standard 注释 后可在控制机看到响应数据(未取消注释会看不到)

 

注: 远程时,可以通过jmeter-server.log来查看相关日志信息

若按照以上完全部署正常,但是远程运行执行机时,执行机一直处于

Starting the test on host 192.168.1.197:2099 @ Thu Aug 22 16:00:19 CST 2019 (1566460819634)

 

可能是因为控制机有多个网卡,可以把网卡都禁用掉之后再尝试。

                </div>
</article>
posted @ 2019-12-13 10:03  讲明白  阅读(630)  评论(0编辑  收藏  举报