Jmeter5 实现多机集群压测(局域网组成多机集群)
想要模拟高并发用户访问的场景,用Jmeter5实现的话,单靠一台PC机,资源是不够的,包括单机的内存、使用端口数量等,所以最好是通过多台PC机组成几个集群来对服务器进行压测。
1.软硬件配置
本文环境(控制机、代理机都一样):
– Win7 64位
– JDK8
– 内存 8G
Apache JMeter5.0 下载地址
JDK8 下载地址
2.配置系统环境变量
安装好jdk、解压JMeter5后,分别配置环境变量
JAVA_HOME、JMETER_HOME指向各自的目录(bin目录所在的那一级),并且把各自的bin目录路径都添加到系统变量Path的值里面,以;号分隔:;%JMETER_HOME%\bin;%JMETER_HOME%;%JAVA_HOME%\bin;%JAVA_HOME%\lib;
3.修改JMeter配置,开启代理机(Agent)功能
修改JMeter的bin目录下面的jmeter.properties文件:
- 找到
server.rmi.ssl.disable这行,去掉前的#,并且把它的值由默认的False改为true - 找到
remote_hosts这行,去掉前面的#,并且把它的值由默认的127.0.0.1改为192.168.1.203:1099,这里的IP必须是本机的局域网IP,当然这个端口1099你可以修改为其它的,只要这个端口没有被本机其它进程占用就行。 - 还要配置服务端的端口:
- 双击
bin目录的jmeter-server.bat启动代理机,正常应该显示如下图内容才正常:
这样就OK了,等待主控机发指令就高高兴兴的干活了~
4.搭建控制机(Controller)环境
控制机就相当于集群压测的大脑,由它发指令给所有的代理机执行脚本任务,最后代理机把测试结果回传给控制机
跟代理机一样安装好、配置好JDK、JMeter的环境变量后,修改主控机JMeter的bin目录下jmeter.properties文件
- 找到
server.rmi.ssl.disable这行,去掉前的#,并且把它的值由默认的False改为true - 找到
remote_hosts这行,去掉前面的#,并且把它的值由默认的127.0.0.1改为我本机的IP加端口:192.168.1.212:1099,这里的IP必须是本机的局域网IP,当然这个端口1099你可以修改为其它的,只要这个端口没有被本机其它进程占用就行,这里统一配置为1099。 - 此外还要配置服务端的端口,把局域网其它要组成集群的机器信息添加到
remote_hosts里面来(包括本机):
下面这个很重要,很重要,不启动主控机的jmeter-server.bat,无法从菜单远程启动本机的无界面客户端进行测试
- 打开
bin目录的jmeter-server.bat,这样就启动了本机作为JMeter服务器了
5.开启压测
接下来开启多机集群测试:
执行
bin目录的jmeter.bat启动本机的JMeter应用程序添加一个线程组,配置要启动测试的线程数、时间等信息
配置要测试的http地址、端口、线程数、时间等信息
添加结果查看、聚合报告
然后从菜单:运行 - 远程启动所有或者远程启动单个代理机执行测试任务:
这里有个说明:
其实我们只要把所有的机器都当做代理机,通过主控机的启动的图形界面的操作客户端,只是用来发命令的,就好理解了。
我们通过菜单【运行 - 远程启动所有】调用当前主控机的NONE-GUI客户端以及192.168.1.203机器的NONE-GUI客户端进行测试任务,最后看聚合报告:
这里为啥取样数是300呢?因为我们这个集群有2台机器啊(当前主控机+那台代理机),我们这里的脚本配置的是5s 时间内完成150个线程的启动,每个线程执行一次请求。所以总共采样数就是
(150*1)*2 = 300
搞定~
Jmeter5 实现多机集群压测(局域网组成多机集群)的更多相关文章
- 支付宝LR集群压测报告
支付宝压力测试报告 时间:2016-03-23 测试人员:XXX 目录 支付宝压力测试报告 1 目录 1 一 ...
- 生产调优2 HDFS-集群压测
目录 2 HDFS-集群压测 2.1 测试HDFS写性能 测试1 限制网络 1 向HDFS集群写10个128M的文件 测试结果分析 测试2 不限制网络 1 向HDFS集群写10个128M的文件 2 测 ...
- linux集群压测部署方案
我们今天主要分享的内容从三方面讲解. 集群压力机部署 shell脚本简介 shell脚本搞定压力机部署 集群压力机部署 linux.png 分布式压测背景介绍 在企业项目实战时,如果被压的服务器处 ...
- mysql集群压测
mysql压测 mysql自带就有一个叫mysqlslap的压力测试工具,通过模拟多个并发客户端访问MySQL来执行压力测试,并且能很好的对比多个存储引擎在相同环境下的并发压力性能差别.通过mysql ...
- Linux服务器压测/拷机软件收集
最近公司采购了一批服务器,于是收集了一些拷机软件来压测服务器硬件性能.硬件的稳定相对来说比较重要,7x24小时无间断运行,主要看三个硬件:CPU.内存.硬盘. 下面是收集的一些教程,可能网址已经失效了 ...
- 并发模式与 RPS 模式之争,性能压测领域的星球大战
本文是<如何做好性能压测>系列专题分享的第四期,该专题将从性能压测的设计.实现.执行.监控.问题定位和分析.应用场景等多个纬度对性能压测的全过程进行拆解,以帮助大家构建完整的性能压测的理论 ...
- 压测2.0:云压测 + APM = 端到端压测解决方案
从压力测试说起 压力测试是确立系统稳定性的一种测试方法,通常在系统正常运作范围之外进行,以考察其功能极限和隐患.与功能测试不同,压测是以软件响应速度为测试目标的,尤其是针对在较短时间内大量并发用户的访 ...
- Jmeter(一)非GUI模式压测(NON-GUI模式)结果解析TPS
非GUI模式压测(NON-GUI模式)结果解析TPS 准备工作 从脚本已录制成功之后开始进行压测 安装Jmeter拓展插件 查看 Transactions per Second https://jme ...
- 实现理论上无tps上限的分布式压测(基于Jmeter+InfluxDB+Grafana+Spring Boot)
JMeter自身带有Master-Slave压测框架,对于并发量不是很高的压力情况下(比如tps低于5000),该方案是可行的,并且使用起来非常方便,只要在配置文件或者命令行工具的参数做一些补充,即可 ...
随机推荐
- Apache Kafka 概述
kafka教程,完全参照w3school: https://www.w3cschool.cn/apache_kafka/apache_kafka-dac11yot.html 以下是入门学习过程中摘录的 ...
- 【C++ Primer | 07】泛型算法
定制操作 #include <iostream> #include <string> #include <vector> #include <algorith ...
- WCF 寄宿Windows以及控制台启动
一:添加windows服务 二:修改XXXInstaller1的StartType=Automatic,修改ProcessInstaller1的Account=LocalSystem 三:在progr ...
- Eclipse中如何打开Map/Reduce Locations窗口
Window->Show View->Other->MapReduce Tools,双击打开
- SqlBulkCopy批量插入数据神器
1.简单例子 class Program { static void Main(string[] args) { Stopwatch sw = new Stopwatch(); DataTable d ...
- 【AtCoder】AGC032
AGC032 A - Limited Insertion 这题就是从后面找一个最靠后而且当前可以放的,可以放的条件是它的前面正好放了它的数值-1个数 如果不符合条件就退出 #include <b ...
- python全栈开发day99-DRF序列化组件
1.解释器组件源码分析 https://www.processon.com/view/link/5ba0a8e7e4b0534c9be0c968 2.基于CBV的接口设计 1).django循环que ...
- Python_lambda简单函数表达式
lambda表达式只能用于简单函数的书写 def funx(a): a+=1 return a print(funx(99)) 用lambda实现上面函数: funx = lambda a: a+1 ...
- zabbix邮箱报警设置&问题汇总
zabbix邮件报警部署! Zabbix监控服务端.客户端都已经部署完成,被监控主机已经添加,Zabiix监控运行正常,通过查看Zabbix监控服务器,可以了解服务器的运行状态是否正常,运维人员不会时 ...
- springmvc+ajax——第二讲(页面缓存)
springmvc+ajax+页面缓存(参考:https://www.cnblogs.com/liuling/archive/2013/07/25/2013-7-25-01.html) 必须设置响应头 ...