jmeter分布式压测对master、slave防火墙配置
首先要了解jmeter分布式压测的基础概念:master为统计结果的服务器,slave为各台压力机,如下图所示
一、结论
针对master
1、修改jmeter.properties的client.rmi.localport=61099(值可以是自定义的,默认为0时会随机分配端口)
2、防火墙打开端口61099-61101(范围也可以设大一点,目前源码我只发现了其使用了61010和61011,即配置的client.rmi.localport加1和加2)
3、修改jmeter.properties的server_port=1099(默认是1099,可不修改,需要与slave配置的server_port一致)
针对各slave
1、修改jmeter.properties的server_port=1099(默认是1099,可不修改,需要与master配置的server_port一致)
2、防火墙打开端口1099
二、原理
防火墙会拦截其他服务器对“未开启端口”的访问,但不拦截服务器主动发起“未开启端口”连接到其他服务器
jmeter开启分布式压测步骤
1、运行slave的jmeter-server,此时会监听1099端口(即配置的server_port)
2、运行master的jmeter,此时master会使用socket连接到slave的1099端口
注意:这里master的端口是随机的,但因为是master主动发起连接,所以不需要理会master的防火墙。但slave的1099端口是被动接收的,所以slave的防火墙要开启1099端口
3、master连接salve的1099端口成功后,会打开61010和61011端口(即配置的client.rmi.localport加1和加2),然后告诉salve主动连接这两个端口
注意:这里与2是相反的,master的61010和61011端口是被动接收的,所以master的防火墙要开启61010和61011端口。
问:如果有多个salve呢? 答:即使有多个salve,master依然是给出这两个端口,我猜想是jmeter为了方便统一处理,才不设计成一个端口对应一个salve
问:为什么不只开启61010和61011端口? 答:既然配了61099,jmeter会不会在其他地方用到了61099。虽然我在运行时netstat找不到61099,但稳健起见还是范围设大一点吧
4、master通过61010和61011端口告诉所有slave开启线程和开启测试,slave把测试结果返回给master
jmeter的具体实现(可不看)
步骤2中master连接slave的具体实现:
jmeter会在ClientJMeterEngine的getEngine方法,调用LocateRegistry.getRegistry,new出一个TCPEndpoint对象,然后registry.lookup(name)使用这个TCPEndpoint对象发起tcp连接
步骤3中master获取client.rmi.localport的具体实现
RemoteSampleListenerImpl 加了2 通知slave开启测试和结束测试
RemoteThreadsListenerImpl 加了1 通知slave开启线程和结束线程
jmeter分布式压测对master、slave防火墙配置的更多相关文章
- 压力测试(八)-多节点JMeter分布式压测实战
1.Jmeter4.0分布式压测准备工作 简介:讲解Linux服务器上jmeter进行分布式压测的相关准备工作 1.压测注意事项 the firewalls on the systems are tu ...
- JMeter分布式压测实战(2020年清明假期学习笔记)
一.常用压力测试工具对比 简介:目前用的常用测试工具对比 1.loadrunner 性能稳定,压测结果及颗粒度大,可以自定义脚本进行压测,但是太过于重大,功能比较繁多. 2.Apache ab(单接口 ...
- jmeter 分布式压测(windows)
单台压测机通常会遇到客户端瓶颈,受制于客户机的性能.可能由于网络带宽,CPU,内存的限制不能给到服务器足够的压力,这个时候你就需要用到分布式方案来解决客户机的瓶颈,压测的结果也会更加接近于真实情况. ...
- JMeter——分布式压测
一.Jmeter4.0分布式压测准备工作 压测注意事项 the firewalls on the systems are turned off or correct ports ...
- Jmeter分布式压测实战及踩坑处理(含参数化)
项目中使用Jmeter进行大并发压测时,单机受限内存.CPU.网络IO,会出现服务器压力还没有上 去,但压测服务器由于模拟的压力太大死机的情况.JMeter的集群模式可以让我们将多台机器联合起来 一起 ...
- jmeter分布式压测
stop.sh需要跑Jmeter的服务器上安装Jmeteryum install lrzsz 安装rz.sz命令rz jemter的压缩包 拷贝到/usr/local/tools下面unzip apa ...
- jmeter 分布式压测(Linux)
之前一篇博文写的是如何在Linux上使用jmeter压测,这篇介绍下Linux上jmeter的分布式压测. 和windows上的分布式类似,需要配置agent节点和控制机 一.Agent节点配置 1. ...
- jmeter分布式压测原理简介1
1.什么叫分布式压测? 分布式压测:模拟多台机器向目标机器产生压力,模拟几万用户并发访问 2.分布式压测原理:如下 3.更多补充.....待添加
- jmeter分布式压测 java.io.FileNotFoundException: rmi_keystore.jks (系统找不到指定的文件。)
解决办法:1.控制机和代理机:修改jmeter.properties中server.rmi.ssl.disable=true 不启动SSL2.控制机和代理机: Slave(从压力机)启动jmeter- ...
随机推荐
- 【java】学习路径17-用户注册登录实例(Scanner)
要学会使用接口.继承.多态.构造方法.包等知识编写出一个用户登录注册的事例.
- 01 - 快速体验 Spring Security 5.7.2 | 权限管理基础
在前面SpringBoot 2.7.2 的系列文章中,已经创建了几个 computer 相关的接口,这些接口直接通过 Spring Doc 或 POSTMAN 就可以访问.例如: GET http:/ ...
- omc.
OMC 099(4b) D 因为 \((abc)^{\dfrac 13} \le \dfrac{a+b+c}3\)(基本不等式),将 \(a = xy, b = yz, c = xz\) 代入得到 \ ...
- KFS replicator安装(Mysql-KES)
源端mysql 一.安装前置配置 1.创建安装用户 groupadd flysync useradd flysync -g flysync -G mysql passwd flysync 2.上传安装 ...
- 走进Redis-扯扯集群
集群 为什么需要切片集群 已经有了管理主从集群的哨兵,为什么还需要推出切片集群呢?我认为有两个比较重要的原因: 当 Redis 上的数据一直累积的话,Redis 占用的内存会越来越大,如果开启了持久化 ...
- scheduler打印状态到日志
编辑脚本和目录 # 如下步骤每个proxysql节点都需要操作 [root@ss30 opt]# mkdir -p /opt/proxysql/log [root@ss30 opt]# vim /op ...
- ProxySQL(1):简介和安装
文章转载自:https://www.cnblogs.com/f-ck-need-u/p/9278818.html ProxySQL有两个版本:官方版和percona版,percona版是在官方版的基础 ...
- CentOS7部署FastDFS+nginx模块
软件下载 # 已经事先把所需软件下载好并上传到/usr/local/src目录了 https://github.com/happyfish100/libfastcommon/archive/V1.0. ...
- 使用KVM安装windows10系统出现内存直接占满的情况解决
情况说明: 在使用kvm安装windows10系统的时候,采用的win10系统不是原版系统,而是经过进一步封装的系统,使用大白菜PE先格式化磁盘,然后再安装的系统,在系统安装好重启的时候,卡在安装界面 ...
- gitlab cicd流水线语法
流水线语法有哪些? 流水线参数列表 Keyword Description script 运行的Shell命令或脚本. image 使用docker映像. services 使用docker服务映像. ...