jmeter分布式压测

一、JMeter分布式压测介绍

在工作中使用jmeter做大并发压力测试的场景下,单机受限内存、CPU、网络IO,会出现服务器压力还没有上去,但是压测服务器已经由于模拟的压力太大死机了。为了让jmeter工具提供更强大的负载能力,jmeter提供了多台机器同时产生负载的机制,下面是架构图。
在这里插入图片描述

二、JMeter分布式压测环境搭建

1.Windows搭建JMeter作为Master

1、安装jdk1.8

2、下载jmeter5.3版本

3、修改jmeter/bin 目录下的jmeter.properties文件:

  1、修改remote_hosts属性,remote_hosts=172.16.32.190:1099,172.16.32.111:1099

  2、将server.rmi.ssl.disable=false取消注释,并修改成server.rmi.ssl.disable=true  #不开启加密认证,否则控制机与负载机无法进行交互

2.Linux搭建JMeter作为Slave

假设Slave为两台,ip为172.16.32.190,172.16.32.111

1、安装jdk1.8

2、下载jmeter5.3版本放在opt目录下(开启文件权限,chomd -R 777 文件名)

3、修改jmeter/bin 目录下的jmeter.properties文件:

  1、将server.rmi.ssl.disable=false取消注释,并修改成server.rmi.ssl.disable=true

 

  # 2.server_port = 1213 (如何修改默认的端口1099,则需要修改)

 

  # 3.server.rmi.port = 1213    --- 认证的端口 (如何修改默认的端口1099,则需要修改)

 

4、修改system.properties文件,在文件末尾追加一行代码java.rmi.server.hostname=xx.xxx.xxx.xxx(slaveIp)

ps:Master与Slave的JDK与jmeter版本保存一致,避免出错

3.开始分布式压测

1、启动Slave A的jmeter-server(cd到jmeter/bin目录下,./jmeter-server启动多网卡模式需要指定IP地址启动./jmeter-server -Djava.rmi.server.hostname=172.16.32.190),确保slave防火墙要关闭

2、启动Slave B的jmeter-server(cd到jmeter/bin目录下,./jmeter-server启动多网卡模式需要指定IP地址启动./jmeter-server -Djava.rmi.server.hostname=172.16.32.111),确保slave防火墙要关闭

3、查看Slave是否启动成功,jmeter-server默认端口是1099,netstat-anp |grep 1099查看1099端口是否被监听

4、打开Master jmeter,点击运行,可选择远程启动单台负载机,也可远程启动所有。(如下图)

 

 

4.注意事项

1、如果有用到CSV文件进行参数化,CSV文件需要放到Slave。(2台负载机的jmeter目录应该保持一致)

2、分布式压测察看结果树没有响应数据,如果需要察看的话,修改jmeter/bin 目录下的jmeter.properties文件,取消mode=Standard 的#注释

3、Slave和Master需要相互能ping通,否则无法进行控制。

4、分布式部署slave和master一定要在同一个局域网

5、如果是在阿里云上面部署分布式,一定要把端口全部开放才能成功,并且要关注带宽是否够用(不是在服务器上面设置 ,阿里云自己还有一层限制)

posted @ 2020-12-18 11:27  Frank13054  阅读(418)  评论(0编辑  收藏  举报