jmeter分布式压测
一、JMeter分布式压测介绍
在工作中使用jmeter做大并发压力测试的场景下,单机受限内存、CPU、网络IO,会出现服务器压力还没有上去,但是压测服务器已经由于模拟的压力太大死机了。为了让jmeter工具提供更强大的负载能力,jmeter提供了多台机器同时产生负载的机制,下面是架构图。
二、JMeter分布式压测环境搭建
1.Windows搭建JMeter作为Master
1、安装jdk1.8
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、如果是在阿里云上面部署分布式,一定要把端口全部开放才能成功,并且要关注带宽是否够用(不是在服务器上面设置 ,阿里云自己还有一层限制)