开启掘金成长之旅!这是我参与「掘金日新计划 · 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的带宽高,不然压力上不去。