001-Jmeter分布式性能测试

由于Jmeter自身瓶颈,单台机器模拟大量并发用户会力不从心,可采用分布式测试。博客介绍了Jmeter分布式部署方法,包括选择controller和agent机器,编辑配置文件、启动agent和执行分布式命令等,还给出了启动agent和controller指定agent启动时的报错解决办法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.jmeter分布式部署的背景

由于Jmeter本身的瓶颈,当需要模拟数以千计的并发用户时,使用单台机器模拟所有的并发用户就有些力不从心,甚至还会引起JAVA内存溢出的错误。要解决这个问题,可以使用分布式测试,运行多台机器运行所谓的Agent来分担JMeter自身的压力,并借此来获取更大的并发用户数,但是需要进行相关的一些修改。(jmeter由Java开发,耗内存、CPU,大量并发需要分布式)

2.部署方法

在所有运行的jmeter上,选择一台jmeter作为controller ,其他的的机器作为agent
步骤一:
在controller机器的jmeter的bin目录下,编辑jmeter.properties 文件,编辑内容如下:

#127.0.0.1代表将本机也作为一个agent;1099为jmeter的controller 和agent 之间进行通信的默认RMI端口号
remote_hosts=192.168.72.134:1099,192.168.72.1:1099,127.0.0.1:1099

server.rmi.ssl.disable=true

步骤二:
启动作为agent的所有jmeter机器
启动命令:

[root@localhost jmeter]# ./bin/jmeter-server -Djava.rmi.server.hostname=192.168.72.134

步骤三:
在controller机器上执行jmeter在控制机执行分布式命令

#-R指定从机IP
jmeter -n -t mysql.jmx -R 192.168.72.134,192.168.72.1,127.0.0.1 -l mysql.jtl
 #启动所有的从机IP
jmeter -n -t  mysql.jmx -r -l mysql.jtl 

3.报错解决

报错一:
有些资料启动作为agent的jmeter机器,直接执行./bin/jmeter-server
报错信息如下:

Created remote object: UnicastServerRef2 [liveRef: [endpoint:[127.0.0.1:51186](local),objID:[-5043762f:16bd6c15be6:-7fff, 4507474015469481845]]]
Server failed to start: java.rmi.RemoteException: Cannot start. localhost.localdomain is a loopback address.
An error occurred: Cannot start. localhost.localdomain is a loopback address.

解决方法:
启动jmeter的agent机器指定本地的IP地址
[root@localhost jmeter]# ./bin/jmeter-server -Djava.rmi.server.hostname=192.168.72.134

报错二:
controller指定agent机器启动时报错
报错信息:

[root@localhost jmx]# jmeter -n -t mysql.jmx -R 192.168.72.134 -l mysql.jtl
Creating summariser <summary>
Created the tree successfully using mysql.jmx
Configuring remote engine: 192.168.72.134
Exception creating connection to: 192.168.72.134; nested exception is: 
	java.net.NoRouteToHostException: No route to host (Host unreachable)
Failed to configure 192.168.72.134
Stopping remote engines
Remote engines have been stopped
Error in NonGUIDriver java.lang.RuntimeException: Following remote engines could not be configured:[192.168.72.134]

解决方法:
尝试telnet agent机器的1099端口,发现无法ping通
[root@localhost jmx]# telnet 192.168.72.134 1099
Trying 192.168.72.134…
telnet: connect to address 192.168.72.134: No route to host
原因:此时agent的防火墙没有关闭
关闭agent的防火墙即可

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值