Jmeter 分布式性能压测

1. 为什么要用分布式?

 
       大家在使用 jmeter 压测过程中,可能会度遇到内存溢出的错误,这是为什么呢?
因为 jmeter java 写的应用, java 应用 jvm 堆内存 heap 受负载机硬件限制,虽然我们可以
调整堆内存大小,但是单机无法支撑数以万计大并发,此时,需要多个负载机进行分压测试,
这样性能瓶颈就不会是我们的负载机了。
假设我们的测试计划会产生 100 threads ,我们使用 6 台机器进行分布式测试的时候,一
共会产生 100 * 6 = 600 的负载。
 
      超过 2000 并发,可使用分布式。
 

2. 原理

        jmeter 分布式压测时,选择其中一台作为控制机,其余的机器做为执行机,执行时,控制机
会把脚本发送到每个执行机上,执行机获取到脚本就执行脚本(执行机只需要启动
jmeter-server.bat 或者 jmeter-server ),执行后,执行机回传执行结果给控制机,控制机会
进行汇总。值得注意的是:如果请求执行成功,不会回传请求的响应信息,所以在查看结果
树中, 响应结果看到是空的。
 
      
 

3. 注意事项

  (1) 关闭防火墙
  (2) 保证控制机和远程执行机 jdk jmeter 版本一致,否则会出现一些意外的问题
 

4. 配置说明

 环境说明
        控制机部署到 widows 环境上;执行机部署到 Linux 环境上。
JMeter 4.0 开始, RMI 的默认传输机制将使用 ssl SSL 需要密钥和证书才能工作,不使
ssl 将存在安全漏洞。
 
(1) 无论是执行机还是控制机均在 jmeter 的安装目录下的 bin 目录编辑 jmeter.properties
文件。
 
“server.rmi.ssl.disable=true” 使 server.rmi.ssl.disable true.
 
(2) 执行机 运行 bin 目录下 jmeter-server 文件
 
./jmeter-server  -Djava.rmi.server.hostname=172.17.51.15  -Dserver.rmi.localport=6000  -Dserver_port=1299
 
会出现如下界面,表示运行成功。
 

  

java.rmi.server.hostname 即为 jmeter 执行机的 ip .
 
server_port=1299 (Jmeter-Server 中的 Jmeter 侦听器 )
server.rmi.localport 用于答复客户端的请求。
 
(3) 配置控制机
 
jmeter 的安装目录下的 bin 目录编辑 jmeter.properties 文件 .
找到 remote_hosts 项( remote_hosts= 执行机 1_ip: 端口号 , 执行机 2_ip: 端口号
)。
remote_hosts=172.17.51.15:1299
 
可在控制机上 telnet ip 和端口,看是否正确
 
(4) 重启或者打开控制机 Jmeter.
 
(5) 控制机 Jmeter 界面
 
“run”->”Remote Start”->172.17.51.15:1299 即为刚才配置的执行机
 
(6) 控制机运行
 
“run”->”Remote Start All”
 
执行机会出现如下界面:
 

 

控制机会出现运行结果:
 
 

 

注意事项:
 
(1)  执行机过了一段时间打印了”Starting.....”之后,一直没有变化,没有 Finish,控制机也
没有执行结果。
 
查看 jmeter-server.log, 发现:

 

ip 又是从哪来的呢?
 
最终发现,该 ip 虚拟机网卡。
 
解决方案:
 
 (1)  禁用掉控制机上的虚拟机网卡
 
  

 

 (2). 重新运行执行机 server 文件( ./jmeter-server -Djava.rmi.server.hostname=172.17.51.15
-Dserver.rmi.localport=1299 -Dserver_port=1599
 
 (3). 重启控制机的 jmeter, 执行 Jmeter 脚本即可成功。
要进行JMeter分布式部署压测,可以按照以下步骤进行操作: 1. 首先,确保已经下载并安装了JMeter。你可以从官方网站上找到详细的安装步骤。 2. 进入JMeter的安装目录,可以使用命令`cd /usr/local/apache-jmeter-5.3/bin`。 3. 在JMeter的安装目录下,找到`jmeter.properties`文件并进行配置。该文件包含了JMeter的各种配置项,包括分布式压测的相关配置。你可以根据需要修改这些配置项,以满足你的压测需求。 4. 配置调度机。在JMeter分布式压测中,调度机负责控制整个压测过程。你需要在调度机上启动JMeter,并配置调度机的信息,如IP地址、端口等。具体的配置步骤可以参考官方文档。 5. 配置执行机。执行机是实际执行压测任务的机器。你需要在执行机上启动JMeter,并设置执行机的信息,如IP地址、端口等。执行机会接收调度机发送的压测任务,并按照任务进行压测。同样,具体的配置步骤可以参考官方文档。 6. 配置Jenkins、Grafana和Prometheus等工具。这些工具可以帮助你更方便地进行压测任务的管理和监控。你可以将JMeter与这些工具集成,以便更好地监视和分析压测结果。 通过以上步骤,你就可以完成JMeter分布式部署压测的配置。在进行压测之前,确保所有的机器都已正确配置,并且可以相互通信。这样,你就可以开始进行分布式压测了。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [【性能测试】JMeter分布式压测部署](https://blog.csdn.net/weixin_46361114/article/details/121777501)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 33.333333333333336%"] - *2* [Jmeter 分布式压测部署](https://blog.csdn.net/weixin_47498496/article/details/112542828)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 33.333333333333336%"] - *3* [linux下Jmeter分布式压测](https://download.csdn.net/download/weixin_38695159/14053948)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 33.333333333333336%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值