manage主
jmeter.properties
# Remote Hosts - comma delimited
remote_hosts=192.168.3.2:1099,192.168.3.2:1098 奴隶机
server.rmi.ssl.disable=true 远程
mode=Standard 日志返回
返回日志的设置
JMeter集群: window作为controller(master),2个linux作为负载机(slave)_qq_38368494的博客-CSDN博客
主机启动jmeter
slave 奴隶机
# Remote Hosts - comma delimited
remote_hosts=192.168.3.2:1099
#remote_hosts=localhost:1099,localhost:2010
# RMI port to be used by the server (must start rmiregistry with same port)
server_port=1099 奴隶机器的端口号可以更改
奴隶机启动server
wifi 处理
方案:这是服务器双网卡造成的问题
在linux上 修改jmeter-server
RMI_HOST_DEF=-Djava.rmi.server.hostname=slave机器名
在windows上 修改jmeter.bat
新增set rmi_host=-Djava.rmi.server.hostname=本机ip
修改set ARGS=%DUMP% %HEAP% %NEW% %SURVIVOR% %TENURING% %PERM% %DDRAW% %rmi_host%
当主机没报告的时候,启动主机的jmeter-server是不是 正在使用的ip,双网卡,就会出现返回的报告没展示问题
分布式的启动,就是启动所有即可
[工具]Jmeter分布式并发配置及常见问题,超详细 - 知乎
给Testers看的Jmeter分布式压测教程_一个Tester的博客-CSDN博客
master
执行的脚本,执行的报告放的位置,执行的测试报告放的文件夹(里面必须是空,重复执行,需要先清空),-R是执行的slave机器 -X是远程执行完关闭
rm -rf /home/jmeter/html
mkdir /home/jmeter/html
./jmeter -n -t /home/jmeter/tmp/login.jmx -l /home/jmeter/tmp/result3.jtl -e -o /home/jmeter/html/ -R 10.91.129.61:1099,10.91.129.63:1099 -X
其实配置可以不用加,都通过命令行方式启动,减少误操作,同时,有个误区就是master要也参与远程压测jmeter-server 是否也要启动,不然监听不到
slave
1.脚本复权,.bin目录下的脚本需要进行赋权才能执行
2.需要关闭防火墙,
【
systemctl stop firewalld.service 关闭防火墙
systemctl start firewalld.service 开启
systemctl status firewalld 查看状态
添加白名单
firewall-cmd --zone=public --add-port=1099/tcp --permanent
firewall-cmd --reload
】
./jmeter-server -Djava.rmi.server.hostname=10.91.129.61
./jmeter-server -Djava.rmi.server.hostname=10.91.129.63
一般不用jtl作为报告文件,太大,影响性能
建议使用csv文件
同时不要用beanshell是每次都用实例,改为用groovy的不是每次都去实例
因为生成这个jtl文件是要实时指标数据写入本地文件的,这个对压力机影响很大,统计误差就大,一般都不会直接用这种方式压测,尤其是tps很高的话,jtl文件非常大,几个G都有,你可以放到时序数据库里面,或者通过kafka mysql+Prometheus 这些来展示指标,