背景
想要知道分布式,必须谈一谈企业中服务器使用的集群的概念,简单说,就是企业采用集群,使用一个ip由多台服务器进行提供服务。那么咱们压力测试本身一台机器的压力有限(Jmeter 默认最大支持 1000 左右的并发用户数),那么就需要多台机器并发的向服务器发送请求,分摊压力。
分布式条件
主机和助攻机的jmeter要一致
1、jmeter的版本一致
2、jdk的主版本一致
3、jmeter脚本的csv文件要一致(特别要注意csv的路径要一致)
4、jmeter的插件要一致
注意:同一局域网,防火墙可以开放的端口,保证一致性的简单方法,直接压缩本地的jmeter包
修改助攻机jmeter的配置文件,三大步
vim jmeter.properties
1、修改端口号
# RMI port to be used by the server (must start rmiregistry with same port)
server_port=6789
2、修改server.rmi.port和 server_port 保持一致即可, 默认是会帮你保持一致的
# To change the default port (1099) used to access the server:
server.rmi.port=6789
3、修改禁用认证,默认 false,代表需要认证,设置为 true,减少不必要的麻烦
# Set this if you don't want to use SSL for RMI
server.rmi.ssl.disable=true
保存
启动助攻机命令
linux机器 : ./jmeter-server -Djava.rmi.server.hostname=压力机ip
window : jmeter-server.bat -Djava.rmi.server.hostname=压力机ip
检查防火墙,确认 server_port 的端口没有被占用以及需要对外开放,端口占用会导致压力机报错,
防火墙命令:
systemctl status firewalld.service 查看firewall状态
systemctl stop firewalld 停止firewall
主攻机修改配置也是三大步:
1、修改remote_hosts
# Remote Hosts - comma delimited
#remote_hosts=127.0.0.1
remote_hosts=127.0.0.1:6789,192.127.136.1:6789
# RMI port to be used by the server (must start rmiregistry with same port)
server_port=6789
注意:多个压力机之间用 , 隔开不同压力机端口可以不一样,不需要全部都一致,如果控制机也测试则加 127.0.0.1:port ,然后修改 server_port 和 server.rmi.port (和压力机一样步骤)
2、修改禁用认证
# Set this if you don't want to use SSL for RMI
server.rmi.ssl.disable=true
3、设置mode
mode=Standard
分布式不关心脚本各个机器一致
启动远程服务器
可以添加各种查看结果
注意一点:总线程数 = 压力机 * 主控机设置的线程数