使用Jmeter在linux环境实现分布式负载
发表于:2025-12-01 作者:千家信息网编辑
千家信息网最后更新 2025年12月01日,分布式意义:在使用Jmeter进行性能测试时,如果并发数比较大(比如最近项目需要支持1000并发),单台电脑的配置(CPU和内存)可能无法支持,这时可以使用Jmeter提供的分布式测试的功能一、Jme
千家信息网最后更新 2025年12月01日使用Jmeter在linux环境实现分布式负载
分布式意义:在使用Jmeter进行性能测试时,如果并发数比较大(比如最近项目需要支持1000并发),单台电脑的配置(CPU和内存)可能无法支持,这时可以使用Jmeter提供的分布式测试的功能
- 一、Jmeter分布式执行原理
- Jmeter分布式测试时,选择其中一台作为调度机(master/Controller),其它机器做为执行机(slave/Agent)
- 执行时,master会把脚本发送到每台slave上,slave 拿到脚本后就开始执行,slave执行时不需要启动GUI,我理解它应该是通过命令行模式执行的
- 执行完成后,slave会把结果回传给master,master会收集所有slave的信息并汇总
- 分布式测试原理:如下图

- 二、执行机(slave)配置
- slave机上需要安装Jmeter,使用rz命令上传jmeter压缩文件,然后解压

- 默认一般给的用户不是管理员,则修改用户环境变量即可:vi ~/.bashrc ,在文件末尾添加该行 export PATH=$PATH:/home/mdrsopen/apache-jmeter-4.0-performance/bin ,此路径为jmeter的的路径,修改完毕,输入:wq退出,执行 source ~/.bashrc
- 输入jmeter -v,出现下图证明配置成功
- 输入jmeter -v,出现下图证明配置成功
- 进入jmeter的bin目录,修改jmeter-server文件,指定主机ip
- 去掉RMI_HOST_DEF前面的#,末尾的XX改成当前主机ip
- 可以对负载机端口进行修改,默认为1099,也可以修改成自己需要的端口,修改完毕,输入:wq退出
- 输入./jmeter-server启动负载机,出现如下界面,证明启动成功
- 多台slave的话,重复1~5步骤就好
- 如果脚本中调用了参数文件,或者其它上传图片等,都需要将文件放到slave节点bin目录下,本次由于是用的相对路径格式为../data/id.xls,则只需要手动在bin目录的上一个层级创建一个data文件夹,然后把参数文件放到该文件下即可
- slave机上需要安装Jmeter,使用rz命令上传jmeter压缩文件,然后解压
- 三、调度机(master)配置
- 脚本:一个devops平台的查询接口
- 找到Jmeter的bin目录下jmeter.properties文件,修改如下配置,IP和Port是slave机的IP以及自定义的端口(负载机端口有一台自定义为1234,有一台默认为1099):remote_hosts=10.16.69.174:1234,10.16.18.21:1099
- 多台slave之前用","隔开,我这配置了2台,可以看到标红的这个就是上面截图slave的IP和Port
- 打开Jmeter,选择运行,有启动、远程启动、远程全部启动三个选项:
启动:就是启动当前master(调度机),把调度机当负载机单独执行
远程启动:可以选择执行需要的负载机
远程全部启动:顾名思义,就是启动所有的负载机 - 选择远程启动-->10.16.18.21:1099
- master结果,这里我只启动了10.16.18.21:1099这一台slave,所以只有一个结果(线程数和循环次数都是1):
- slave控制台信息:
- 选择远程启动-->远程全部启动:
- master结果,全部启动,我配置了2台slave,所以有两次执行结果
- 四、调度机(master)使用命令执行分布式测试
- widows环境执行
- jmeter -n -t 监听设置.jmx -r -l log.jtl
- 参数说明 :
-n 告诉jmeter使用非GUI模式执行测试
-t 执行的测试脚本名
-r 远程执行 , 在Jmter.properties文件中指定的所有远程服务器
-l 结果文件,如果不写路径,则在执行目录生成
- linux环境命令相同
- widows环境执行
- 五、其它说明:
- 调度机(master)和执行机(slave)最好分开,由于master需要发送信息给slave并且会接收slave回传回来的测试数据,所以mater自身会有消耗,所以建议单独用一台机器作为mater。
- 每台机器上安装的Jmeter版本和插件最好都一致,否则会出一些意外的问题。
- 执行机(slave)设置的端口,首先要保证未被占用,可以使用该命令进行查询,netstat -anp|grep 端口 如果查询为空则可以进行配置,如下
- 查询有值,则代表该端口已经被占用,需要换一个端口
- 启动slave机器的server服务报如下错误,则要看apache-jmeter-4.0\bin下的jmeter.properties文件是否开启server.rmi.ssl.disable=true,报错如下
默认为
需要改成 - 启动master如果也报java.io.FileNotFoundException: rmi_keystore.jks (No such file or directory),修改方法一致,需要查看jmeter.properties文件是否开启server.rmi.ssl.disable=true,报错如下
- master执行日志显示执行请求数量为0
查看jmeter-server.log日志,该日志路径在执行jmeter-serer命令启动slave节点的路径,如下图,启动路径在/apps下
由上图可知是由于CSV元件找不到相对路径导致执行报错,由于slave启动节点路径在/apps,所以需要把data参数文件放置在/apps上的一个层级,可以直接在jmeter/bin目录下启动slave节点,这样相对参数文件就在bin目录一个层级,具体见(二、执行机(slave)配置介绍)
如果文章对你有帮助,可以在右下角点击关注功能,欢迎转发、拍砖,本人会持续推出与测试有关的文章,与大家分享测试技术,每一篇原创文章都是用心编写,杜绝抄袭复制,微信公众号与本平台文章同步,方便大家查阅
QQ技术交流群:加群请输入验证信息51CTO
微信二维码关注公众号:
关注之后,回复资源下载,即可获取本人共享的各种资源下载地址
文件
路径
测试
配置
端口
目录
分布式
命令
结果
调度机
调度
参数
脚本
输入
选择
信息
文章
机器
节点
查询
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
在网上怎么建服务器
oracle数据库连接包
江苏互联网智能科技选择
大唐软件开发费用
天津市癌症中心随访数据库
软件在服务器上的部署方式
web服务器处理请求
台江区晴升网络技术服务部
黑龙江哈尔滨网络服务器
百度 腾讯 网络安全法
mac时间同步服务器
安全联盟可信数据库
只狼登录服务器卡住
移动网络安全怎么防范
mps430软件开发指南
软件开发人群分析报告
吉林澳东软件开发
国网络安全法的立法方针是
关于冠状病毒网络安全视频
计算机等级考试网络技术教程
键入网络安全密钥6
易语言程序可以在服务器运行不
智能家居系统服务器系统
软件开发技术靠谱吗
数据库连不上怎么回事
顺义区综合网络技术服务口碑推荐
软件开发工程师很难吗
小米手机怎么小米云服务器
常州网络软件开发供应商
怎么去除数据库中重复的记录