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- ...
随机推荐
- VS 正则匹配快速查询
**************************************************************************************************** ...
- iOS 苹果集成登录及苹果图标的制作要求
前言 如果要上架的应用集成了三方登录,那么在审核时,苹果会强制要求应用也要集成苹果登录.如果应用没有集成一般情况下都会被审核团队给打回来. 苹果集成登录 首先,你需要在开发者中心,找到你的应用,勾选上 ...
- 搭建eBackup对接NFS服务
环境准备 两个虚拟机需要是仅主机并且同一网段 先搭建一个eBackup环境虚拟机 搭建步骤可访问:(https://www.cnblogs.com/zhengyan6/p/16220774.html) ...
- v-if和v-for的优先级是什么?
一.作用 v-if 指令用于条件性地渲染一块内容.这块内容只会在指令的表达式返回 true值的时候被渲染 v-for 指令基于一个数组来渲染一个列表.v-for 指令需要使用 item in item ...
- KingbaseES XA 分布式事务
在分布式系统中,各个节点(或者事务参与方)之间在物理上相互独立,各节点之间无法确切地知道其它节点中的事务执行情况,所以多节点之间很难保证ACID,尤其是原子性.如果是单节点的事务,由于存在事务机制,可 ...
- logstash接受checkpoint防火墙日志并用ruby分词
直接上logstahs配置文件 input{ syslog{ type => "syslog" port => 514 } } filter { grok { matc ...
- 放弃 Electron,拥抱 WebView2!JavaScript 快速开发独立 EXE 程序
Electron 不错,但也不是完美的. Electron 带来了很多优秀的桌面软件,但并不一定总是适合我们的需求. 多个选择总是好事! 我使用 Electron 遇到的一些麻烦 1.Electron ...
- csrf跨站请求伪造、csrf相关装饰器、auth认证模块、基于django中间件设计项目功能
目录 csrf跨站请求网站 什么是csrf跨站请求网站 经典例子-钓鱼网站 模拟 如何避免这种现象(预防) 如何在django中解决这个问题 form表单 ajax csrf相关装饰器 FBV CBV ...
- RedHat Linux升级内核
操作系统:Red Hat 6.4 内核文件:linux-3.10.1.tar.gz https://www.cnblogs.com/cherish-sweet/p/newyum.html uname ...
- Windows DNS服务器的子网掩码排序
对于跨多个站点部署的应用服务,会在各个站点都有服务器,并且对应不同的IP地址.我们希望每个客户端访问就近的资源.这个时候可以启用Windows DNS服务器中的子网掩码排序(子网优先)netmask ...