Jmeter搭建分布式压测环境
最近在做性能测试,本来以为一台压力机就够啦,但是在压测一个查询接口的时候,当TPS达到500多的时候就开始报错,经过定位是压力机出现啦瓶颈,于是决定对压力机做一下分布式,经过调试环境部署成功,再次压测时候问题解决。下面记录一下部署分布式环境的过程。
使用的工具及版本:
JDK:1.8.0_211
Jmeter:5.2.1
Linux:CentOS 7 2台
在部署环境之前先说一下Jmeter分布式执行原理:
jmeter在执行分布式时候,首先要选择一台作为控制的机器,一台或多台执行的机器,在开始执行压测脚本的时候,控制器会把要执行的脚本分发到一台或多台执行机上,执行机拿到脚本后开始执行,执行结束后所有的执行机把执行结果返回给控制机,控制机在把各个执行机返回的结果进行汇总。
执行原理图如下:

我们了解了执行原理,下面开始进行环境部署
1.分别在控制机和执行机上安装jdk和jmeter(两台机器的jdk和jmeter版本必须一致)
2.两台机器分别配置jdk和jmeter的环境变量,这里也把环境变量配置付给大家,方便后面当做参考
我们输入命令进入环境变量配置文件:vim /etc/profile 添加以下配置
jdk环境变量:
1 2 3 4 5 6 7 | export JAVA_HOME=/usr/local/wangfegnwei/jdk1.8.0_211 export PATH=$JAVA_HOME/bin:$PATH export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar /usr/local/wangfegnwei/jdk1.8.0_211 是jdk安装的目录,其他的不变 |
jmeter环境变量:
JMETER_HOME=/home/qa_group/apache-jmeter-5.2.1 export CLASSPATH=$JMETER_HOME/lib/ext/ApacheJMeter_core.jar:$JMETER_HOME/lib/jorphan.jar:$JMETER_HOME/lib/logkit-2.0.jar:$CLASSPATH export PATH=$JMETER_HOME/bin:$PATH:$HOME/bin /home/qa_group/apache-jmeter-5.2.1jmeter安装的目录,其他的不变
如下图:

配置后输入命令:source /etc/profile 使配置的环境变量生效
3.分别验证控制机和压测机的jdk和jmeter是否安装好并配置好环境变量


4.环境变量配置完成后接下来配置控制机
进入控制机jmeter的bin目录下:vim jmeter.properties
a:修改:remote_hosts=执行机1的ip:端口,执行机2:端口
b:配置端口号:server_port=1099 可以自己指定 也可以使用默认的 1099
c:修改:server.rmi.ssl.disable=true
注意:控制机和执行机的 server_port 尽量保持一致 我这里用的都是 1099

5.配置执行机,进入 执行机 jmeter的bin目录下的 jmeter.properties配置文件
配置端口号:server_port=1099
修改:server.rmi.ssl.disable=true


6.把执行的脚本分别复制到2台机器同一个目录下
我把脚本都放在这个目录下:/usr/local/wangfegnwei/script/
7.执行机中输入命令启动:./jmeter-server (因为我们配置了环境变量,所以任意位置输入这个命令都可以)

我们可以设置后台启动 nohup ./jmeter-server & 这样关闭页面后也在运行
8.我们先运行一台执行机
启动命令:jmeter.sh -n -t /usr/local/wangfegnwei/script/init.jmx -R 执行机ip:1099

9.上面同样的操作启动第二胎执行机
10.运行两台执行机执行脚本
jmeter.sh -n -t /usr/local/wangfegnwei/script/init.jmx -R 执行机1ip:1099,执行机2ip:1099

11.监控结果如下图

【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY