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- ...
随机推荐
- Windows权限维持总结
windows权限维持 注册服务 sc create 服务名 binpath= "cmd.exe /k 木马路径" start="auto" obj=" ...
- 基于Vue3实现一个前端埋点上报插件并打包发布到npm
前端埋点对于那些营销活动的项目是必须的,它可以反应出用户的喜好与习惯,从而让项目的运营者们能够调整策略优化流程提高用户体验从而获取更多的$.这篇文章将实现一个Vue3版本的埋点上报插件,主要功能有 通 ...
- 第九十九篇:JS闭包
好家伙,总是要来的,去面对那些晦涩难懂的原理,它就在那里,等着我去搞定它 首先我要去补充一些最基本的概念, 1.什么是内存? 新华字典永远的神, 但这个解释显然不够 去看看百度百科: 内存: CP ...
- 集成 Redis & 异步任务 - SpringBoot 2.7 .2实战基础
SpringBoot 2.7 .2实战基础 - 09 - 集成 Redis & 异步任务 1 集成Redis <docker 安装 MySQL 和 Redis>一文已介绍如何在 D ...
- KingbaseES函数如何返回结果集
函数返回值一般是某一类型值,如int,varchar,date等,返回结果集时就需要用到setof语法. 创建数据 create table class(id number primary key, ...
- 国产CPLD(AGM1280)试用记录——做个SPI接口的任意波形DDS [原创www.cnblogs.com/helesheng]
我之前用过的CPLD有Altera公司的MAX和MAX-II系列,主要有两个优点:1.程序存储在片上Flash,上电即行,保密性高.2.CPLD器件规模小,成本和功耗低,时序不收敛情况也不容易出现.缺 ...
- Prometheus监控Nginx
转载自:https://www.cnblogs.com/you-men/p/13173245.html CentOS7.3 prometheus-2.2.1.linux-amd64.tar.gz ng ...
- ubuntu开启sshd
SSH分客户端openssh-client和openssh-server 如果你只是想登陆别的机器的SSH只需要安装openssh-client(ubuntu有默认安装,如果没有则sudo apt-g ...
- 记录一次Bitbucket鉴权的坑
目录 发生了什么 什么原因 如何解决 总结 发生了什么 今天首次在Fedora上使用git,因为没有小王八(TortoiseGit)帮助,其过程异常焦灼-- 反正经过一系列折腾,我在本地新建了一个项目 ...
- 基于Qt Designer和PyQt5的桌面软件开发--环境搭建和入门例子
本文介绍了如何使用技术栈PyCharm+Qt Designer+PyQt5来开发桌面软件,从环境搭建.例子演示到对容易混淆概念的解释.文中用到的全部软件+代码下载链接为:https://url39 ...