Jmeter分布式压测

51 阅读2分钟

开启掘金成长之旅!这是我参与「掘金日新计划 · 12 月更文挑战」的第23天,点击查看活动详情

在使用JMeter的时候,由于单机的并发经常性的不能满足最大压力的需求,需要多台机器同时压力测试。

在JMeter中使用的应用进场景如下:用一台机器(称为JMeter客户端)上的jmeter同时启动另外几台机器 为JMeter远程服务器)上的jmeter。

前提条件:

1.保证jmeter客户端和jmeter远程服务器采用相同版本的jmeter和J/M。

2.jmeter客户端和jmeter远程服务器最好在同一个网段内。

JMeter配置和操作如下:

1.在jmeter远程服务器上运行JMETER_HOME/bin/jmeter-server (lUNIX)或者JMETER_HOME/bin/jmeter-ser ver.bat(Windows)脚本。

2.在jmeter客户端上修改/bin/jmeter.properties文件,找到属性"remote_hosts"使用JMeter远程服务器的IP地 址作为其属性值。可以添加多个服务器的IP地址,以逗号作为分隔。

例如:

 #remote_hosts=127.0.0.1
remote_hosts=9.115.210.2:1099, 9.115.210.3:1099,9.115.210.4:1099
#RMI port to be used by the server(muststart rmiregistry with same port)
server_port=1099

3.在jmeter客户端上启动jmeter:

./jmeter-n-tplan.jmx-r #选项-r表示远程启动(remote)

jmeter客户端会自动向jmeter远程服务器上分发测试计划。

4.Jmeter分布式压测前的准备工作

(1)确保master和各个slave上使用相同版本的JMeter和Java。混合合版本将无法正常工作

(2)master和各个slave的防火墙已关闭或打开了正确的端口,且端口未被占用。

(3)master和各个slave上安装的杀毒软件已关闭。

(4)master和各个slave在同一个子网内,尽量减少网络带宽的影响,减少时延问题。如果是多网卡环境需要保证启动的网卡都在同一个网段。

(5)确保JMeter可以访问服务器,可以使用ping命令查看。

(6)已经为RMI设置了SSL或禁用了它。

(7)master和各个slave上安装Jmeter全部启动成功。

(8) 如果压测脚本有依赖的测试数据,测试数据文件需要复制一份到Worker Nodes上,且文件路径必须Controller Node中一致

(9)如果使用云服务器进行压测,一定要使用内网IP,不能使用公网IP,先使用ping命令检查网络是否通畅。

(10)压力测试瓶颈大都在带宽上面,需要保证slave的带宽要比Tar:get的带宽高,不然压力上不去。