天天看点

Jmeter分布式压测-解决连不上Slave负载机原因【windows/linux】

1.目的

a.单台压测机通常会遇到客户端瓶颈,对于请求量/并发量很大的情况需求受制于客户机的性能。可能由于网络带宽,CPU,内存的限制不能给到服务器足够的压力.

b.这个时候你就需要用到分布式方案来解决客户机的瓶颈,压测的结果也会更加接近于真实情况.

c.随并发用户数量增加,单台压力机已经没法满足用户的业务需求,所以,需要通过分布式多台压测机.

2.Jmter分布式原理

a、Jmeter分布式测试时,选择其中一台作为调度机(master),其它机器做为执行机(slave)。

b、执行时,master会把脚本发送到每台slave上,slave 拿到脚本后就开始执行,slave执行时不需要启动GUI,我理解它应该是通过命令行模式执行的。

c、执行完成后,slave会把结果回传给master,master会收集所有slave的信息并汇总。

Jmeter分布式压测-解决连不上Slave负载机原因【windows/linux】

3.环境准备

a.JDK版本最好一致(不一致也行,大版本一致就行,比如1.8/1.7)

b.Jmeter版本一致,插件一致,csv文件,保存路径一致等(我这里用的jmeter4.0)

c.jmeter分布式可以跨系统配置 不论是windows还是linux都可以

b.同一局域网,准备负载机器2/3台或者更多(linux/windows都行)

4.控制机部署

a.打开JMeter/bin/jmeter.properties并编辑

Jmeter分布式压测-解决连不上Slave负载机原因【windows/linux】

b.全局搜索下ssl.disable 然后改成true

Jmeter分布式压测-解决连不上Slave负载机原因【windows/linux】

c. 为了避免后续压测时开不到负载机的响应结果,需要更改jmeter.propertoes文件,按照下图操作就能解决

Jmeter分布式压测-解决连不上Slave负载机原因【windows/linux】

5.Linux负载机部署(多台同理)

a.linux打开JMeter/bin/jmeter.properties并编辑(这里的jmeter版本和控制机的一致)

Jmeter分布式压测-解决连不上Slave负载机原因【windows/linux】
Jmeter分布式压测-解决连不上Slave负载机原因【windows/linux】

b.linux负载机启动jmeter-server时可能会报错 编辑文件 vim jmeter-server

Jmeter分布式压测-解决连不上Slave负载机原因【windows/linux】

6.Windows部署成负载机(多台同理)

a.编辑/bin/jmeter.properties文件

和控机一样配置,步骤仍是打开JMeter/bin/jmeter.properties并编辑

注意这里,负载机,只用配置自己的ip和端口就可以了(端口自定义都行)

Jmeter分布式压测-解决连不上Slave负载机原因【windows/linux】

b.每个ip对应的不同的网段

Jmeter分布式压测-解决连不上Slave负载机原因【windows/linux】

7.控制机生成密匙-负载机授权-分布式才能正常实现

a.生成密匙

接下来因为jmeter4.0版本及以上时,为了安全 分布式压测需要一个密匙才能正常实现

打开控制机的bin目录运行create-rmi-keystore.bat(或者直接执行改脚本也可以)

Jmeter分布式压测-解决连不上Slave负载机原因【windows/linux】

b.然后找到jdk并进入jdk\bin目录

Jmeter分布式压测-解决连不上Slave负载机原因【windows/linux】

c.完成后,会生成一个jks文件

Jmeter分布式压测-解决连不上Slave负载机原因【windows/linux】

d.配置jks文件

将文件复制粘贴给所有负载机中的jmeter\bin目录下面(Windows、linux同理)

案例:

Jmeter分布式压测-解决连不上Slave负载机原因【windows/linux】

8.运行所有负载机和控制机jmeter-server

a.linux运行方式:

可能会出现提示权限问题,赋予权限chomd -R 777 xxxx再次运行就行了
Jmeter分布式压测-解决连不上Slave负载机原因【windows/linux】

b.Windows运行方式:

Jmeter分布式压测-解决连不上Slave负载机原因【windows/linux】

9.启动控制机jmeter-server

注意控制机也要启动jmeter-server(所有机器启动完后就可以开始测试了)

a. 打开控制机的jmeter

选择远程启动某个负载机或者远程启动全部负载机,如果想终止,就点停止
Jmeter分布式压测-解决连不上Slave负载机原因【windows/linux】

b.演示:

Jmeter分布式压测-解决连不上Slave负载机原因【windows/linux】
Jmeter分布式压测-解决连不上Slave负载机原因【windows/linux】

c.负载机资源

Jmeter分布式压测-解决连不上Slave负载机原因【windows/linux】

d.控制机负载对比

可能因为量小,不是很显著,但还是看得出来
Jmeter分布式压测-解决连不上Slave负载机原因【windows/linux】

10.注意事项

同个局域网、ip端口要设置对
负载机和控制机启动jmeter-server挂后台
jmeter、jdk同版本、特别是jmeter脚本中如有同csv或者引用文件变量什么的,负载机和控制机都要有,且路径是一致
4.关闭防火墙systemctl stop firewalld
5.检查是否可以telnet通和互相ping通           

最后发现了一个有趣问题,负载机的jmeter-server窗口-如果不是点最小化-而是直接点了其他程序占用后,控制机再向负载机发送请求就会卡住,无法连接到负载机了,所以如果负载机是其他同事在用的电脑,就最小化

Jmeter分布式压测-解决连不上Slave负载机原因【windows/linux】

继续阅读