问:jmeter为什要使用分布式?
答:当需要并发的用户数量巨大,一台压力机无法大量数据的请求,这是需要使用分布式方法使用多台压力机一起向服务器发送请求。分担压力机的压力,需要采用分布式。
分布式的前提条件:
- jmeter一致型
- jmeter一致型
- jmeter版本
- jdk
- 插件
- 同一个局域网
分布式压操作步骤:
- 打包复制一份jemter文件夹,发送助攻机
- 在助攻机解压。
- 助攻机配置
助攻机器jmeter配置:
- 找到bin\jmeter.properties, 用记事本打开
- 搜索‘server_port’ 修改为自定义端口
- 搜索‘rmi.port' 修改server.rmi.port 端口与上面一致
- 搜索‘ssl.disable' 修改server.rmi.ssl.disable= True
- 启动服务:cmd 到bin jmeter-server.bat -Djava.rmi.server.hostname=助攻机ip
- linux 配置防火墙:systemctl stop firewalld.service
主控机机配置
- 找到bin\jmeter.properties, 用记事本打开
- 搜索'remote_host' 修改为:remote_hosts=你的助攻机器ip:端口 ; 多个助攻机是用分号隔开
- 搜索‘ssl.disable' 修改server.rmi.ssl.disable= True
- mode=Standard 把前面的# 去掉
- 重启主控机的jmeter,在重启前助攻机的服务要启动
分布式压测启动
点击运行---远程启动---选择要压测的机器
运行配置的说有压力机
问题排查步骤:
连接超时:
1、检查助攻机器 jemter-server是否启动=====注意端口
2、启动正常 出现 created remote object****
(1)检查主控机器配置文件中写的 ip和端口
(2)检查助攻机器 防火墙 主控机器telnet ip 端口
3、 127.0.0.1 *****
助攻机器中停止jmeter-server服务
然后 jmeter-server.bat -Djava.rmi.server.hostname=助攻机ip
分布式压测的计算
每个助攻机器 收到主控机相同的指令,如主控机设置1000个线程,有三个助攻机,那么一共是3000个用户并发。主控机不计算其中。
如果要把主控机要当做压力机使用,则要把主控机的ip地址和端口配置到remote_hosts中如下配置: