jmeter分布式集群压测

news2024/11/25 4:28:38

目的:通过多台机器同时运行 性能压测 脚本,模拟更好的并发压力

简单点:就是一个人(控制机controler/调度机 master)做一个项目的时候,压力有点大,会导致结果不理想,这时候找几个人(执行机slaver)一起做,平均分配工作量 ,控制机只需要设置好需求,通知执行时间,最后看结果就行,其他都不用做。

master会在本地编辑好jmx压测脚本,执行时,master将jmx脚本发送至slave上,slaver执行时不需要启动jmeter,只需要把jmeter-sever.bat文件打开以非GUI形式执行;

slave执行完毕后将结果回传给master,并由master进行结果的汇总 

1.多个独立环境,运行jmeter

192.168.120.9 --- 运行jmeter,控制机

192.168.1.174 --- 运行jmeter-server 作为执行机

192.168.1.175--- 运行jmeter-server作为执行机


2.执行机 环境搭建

2.1 环境设置 

注意:控制机和执行机需要一致的地方

  • Jmeter版本一致
  • JDK版本一致
  • Jmeter插件一致
  • Jmeter脚本中文件路径要一致(特别注意csv路径,建议csv路径使用相对路径,放在脚本的同级目录)
关于分布式环境计数重复问题导致程序报错

解决方案:Jmeter脚本添加csv文件控制,不同的SLAVE环境下存放不同的csv文件即可使用CSV+计数器控制不同Slave的重复问题。
  • 同一局域网,防火墙要开放端口

保持一致性的方法:直接压缩本地Jmeter包,然后上传到各个执行机进行解压

2.2 修改jmeter.properties

进入配置文件目录下

jmeter4.X之后controller机连接slave机,多了SSL身份验证环节,不想使用SSL,也可以进行关闭SLL,通过修改jmeter.properties(关闭RMI) 

内网压测禁用SSL,外网需要启动SSL,进行slave机和controller机身份验证

server.rmi.ssl.disable=true

命令行比较难找,如果可以直接操作电脑文件,可以直接在 jmeter.properties修改比较方便

 3. 控制机修改jmeter.properties

修改配置文件jmeter.properties

设置要连接的执行机 

4.密匙传给执行机

控制机生成密匙-执行机(负载机)授权-分布式才能正常实现 

1).接下来因为jmeter4.0版本及以上时,为了安全 分布式压测需要一个密匙才能正常实现


2).打开控制机的bin目录运行create-rmi-keystore.bat 

复制下面的指令 

 

keytool -genkey -keyalg RSA -alias rmi -keystore rmi_keystore.jks -storepass changeit -validity 7 -keysize 2048

3).找到jdk并进入jdk\bin目录

mac:

/Library/Java/JavaVirtualMachines/jdk-11.jdk/Contents/Home/bin

输入 b中复制的执行,且输入信息后,报错:keytool 错误: java.io.FileNotFoundException: rmi_keystore.jks (Permission denied)

权限的问题,增加sudo

4).完成后,会生成一个jks文件

5).然后将这个文件,复制粘贴给所有执行机中的jmeter\bin目录下面(Windows、linux同理) 

 

5. 运行

5.1 执行机启动

每个执行机都要启动 

./bin/jmeter-server -Djava.rmi.server.hostname::192.168.1.174
./bin/jmeter-server -Djava.rmi.server.hostname::192.168.1.175

如果提示权限问题,赋予权限chomd -R 777 xxxx 

5.2 控制机启动

1) GUI模式 

远程启动,选择执行机,如果都要执行,则选择“远程启动所有” 

2)非GUI模式

启动salve机执行脚本,并返回数据,同时生成聚合报告文件、日志等数据文件

jmeter -n -t 脚本名称.jmx -R 192.168.38.49,192.168.38.52,192.168.38.20 -l logfile.jtl -o testReport -j log -r -e

 

注意点:

如果执行 6000个线程数 :

  • 3 个执行机的话,线程数就设置2000;
  • 2 个执行机的话,线程数就设置 3000;
  • 1 个执行机的话,线程数就设置 6000.

更多问题 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1671939.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

国际护士节庆祝活动向媒体投稿有方法很轻松

作为一名医院职工,我肩负着医院对外信息宣传的重任。在国际护士节这个特殊的日子里,我们医院举办了一系列庆祝活动,以表彰护士们的辛勤付出和无私奉献。然而,在将这些活动信息投稿至媒体的过程中,我最初却遭遇了诸多挑战。 起初,我采用传统的邮箱投稿方式,将精心撰写的稿件发送…

Docker运行出现iptables: No chain/target/match by that name报错如何解决?

在尝试重启 Docker 容器时遇到的错误信息表明有关 iptables 的配置出了问题。这通常是因为 Docker 需要配置网络,而 iptables 规则没有正确设置或被意外删除。具体到你的错误信息中,报错 iptables: No chain/target/match by that name 表示 Docker 尝试…

Java后端的接口参数两个interger 类型情况解决

get请求 &#xff0c;对应请求头 RequestParm, post请求&#xff0c; 对应请求体 &#xff0c;RequestBody 两个Integer参数情况 GetMapping("/insertStaffClass")public R<Void> insertStaffClass(RequestParam Integer staffId,RequestParam List<Integ…

Floyd+二分,蓝桥杯国赛2022[环境治理]

一、题目 1、题目描述 2、输入输出 2.1输入 2.2输出 3、原题链接 0环境治理 - 蓝桥云课 (lanqiao.cn) 二、解题报告 1、思路分析 考虑我们治理时间越长&#xff0c;灰尘度和越低&#xff0c;具有单调性 考虑 二分治理天数mid&#xff0c;1~n可以降低与其相连边 mid / n 点…

PyQt5中的QGraphicsView()

文章目录 1. 简介2. 一个简单的示例2. 加载一幅图片3. 常用方法示例 1. 简介 QGraphicsView是PyQt5中用于显示图形场景的小部件&#xff0c;它提供了许多常用的方法来控制视图的行为和属性。下面是一些常用的QGraphicsView方法&#xff1a; setScene(scene): 设置要显示的场景…

初识C语言——第十九天

for循环 1.简单概述 2.执行流程 3.建议事项&#xff1a;

vue从入门到精通(一):初始Vue

一&#xff0c;Vue是什么 Vue (读音 /vjuː/&#xff0c;类似于 view) 是一套用于构建用户界面的渐进式框架。Vue 被设计为可以自底向上逐层应用。Vue 的核心库只关注视图层&#xff0c;不仅易于上手&#xff0c;还便于与第三方库或既有项目整合。另一方面&#xff0c;当与现代…

长难句打卡 5.13

And in Europe, some are up in arms over a proposal to drop a specific funding category for social-science research and to integrate it within cross-cutting topics of sustainable development. 在欧洲&#xff0c;有些人正竭力反对一项“终止专用于社会科学研究的…

java spring boot动态数据库获得配置信息连接多数据源(数据库)

数据库 数据库文件和代码文件 https://download.csdn.net/download/qq_34631220/89304173 链接&#xff1a;https://pan.baidu.com/s/1xoh6xiSRx4nW_gKvR1QPjg 提取码&#xff1a;i7b7 –来自百度网盘超级会员V5的分享 文章位置 添加链接描述 说明&#xff1a;事务只能单库…

JUC下的Future 详解

java.util.concurrent.Future 是Java并发编程中一个重要的接口&#xff0c;它代表一个异步计算的结果。当你提交一个任务到执行器&#xff08;如ExecutorService的submit方法&#xff09;&#xff0c;它会返回一个Future对象。这个对象允许你查询任务是否完成、取消任务、获取任…

软件需求工程习题

1.&#xff08;面谈&#xff09;是需求获取活动中发生的需求工程师和用户间面对面的会见。 2.使用原型法进行需求获取&#xff0c;&#xff08;演化式&#xff09;原型必须具有健壮性&#xff0c;代码质量要从一开始就能达到最终系统的要求 3.利用面谈进行需求获取时&#xf…

vue3使用依赖注入实现跨组件传值

父组件Index.vue: <script setup> import { onMounted, provide, ref } from vue import Child from ./Child.vue import ./index.cssconst count ref(0)provide(count, count)const handleClick () > {count.value }onMounted(() > {}) </script><tem…

基于SpringBoot + MySQL的宠物医院管理系统设计与实现+毕业论文+指导搭建视频

系统介绍 项目的使用者可以避免排队挂号&#xff0c;比较方便&#xff0c;也方便于宠物医院的管理。现在的宠物本系统根据华阳社区宠物医院管理工作流程将系统使用者划分为三类&#xff0c;分别为、宠物医生、宠物主人以及系统管理人员&#xff0c;以下是对该三类类用户的具体…

基于百川大语言模型的RSS新闻过滤应用【云服务器+公网网页,随时随地看自己DIY订阅的新闻内容】

背景 目前从公众号、新闻媒体上获得的新闻信息,都是经过算法过滤推荐的,很多时候会感到内容的重复性和低质量,因为他们也要考虑到自己的利益,并非完全考虑用户想要的、对用户有价值的信息。这时,如果要获取自己认为重要的信息,定制化开发自己的筛选算法更好。 效果 素材…

自托管站点监控工具 Uptime Kuma 搭建与使用

本文首发于只抄博客&#xff0c;欢迎点击原文链接了解更多内容。 前言 Uptime Kuma 是一个类似 Uptime Robot 的站点监控工具&#xff0c;它可以自托管在自己的 Nas 或者 VPS 上&#xff0c;用来监控各类站点、数据库等 监控类型&#xff1a;支持监控 HTTP(s) / TCP / HTTP(s…

vue数据大屏并发请求

并发? 处理并发 因为js是单线程的&#xff0c;所以前端的并发指的是在极短时间内发送多个数据请求&#xff0c;比如说循环中发送 ajax , 轮询定时器中发送 ajax 请求. 然后还没有使用队列, 同时发送 的. 1. Promise.all 可以采用Promise.all处理并发&#xff0c; 当所有pro…

ComfyUI 介绍及入门

介绍 ComfyUI 是一种用户界面&#xff0c;它采用了基于节点的流程设计&#xff0c;用于操作一种名为 Stable Diffusion 的技术。这种设计允许用户通过自定义流程来实现更精确的工作流程&#xff0c;并确保结果的可重复性。在 ComfyUI 中&#xff0c;每个模块都承担着特定的任务…

【C++】-【QT】类库使用-001

1主窗口创建 1.1【makefile】配置 1 源码 QT widgetsSOURCES main.cpp2 图示 1.2源码 1 源码 #include <QWidget> #include <QApplication>using namespace std;int main(int argc,char *argv[]) {QApplication a(argc,argv);QWidget w;w.show();return a…

AlphaFold 3:开启生物医药新革命

AlphaFold 3简介 DeepMind与Isomorphic Labs联合发布了AlphaFold 3&#xff0c;这是一个可以更准确预测蛋白质和其他生物分子结构及其相互作用的AI模型&#xff0c;标志着生物医学研究的新革命 AlphaFold 3&#xff0c;这款由DeepMind与Isomorphic Lab联手推出的最新人工智能…

深度解读《深度探索C++对象模型》之虚继承的实现分析和效率评测(一)

目录 前言 具有虚基类的对象的构造过程 通过子类的对象存取虚基类成员的实现分析 接下来我将持续更新“深度解读《深度探索C对象模型》”系列&#xff0c;敬请期待&#xff0c;欢迎左下角点击关注&#xff01;也可以关注公众号&#xff1a;iShare爱分享&#xff0c;或文章末…