Linux环境下进行jmeter分布式压测配置

发布时间:2026-03-01 15:56

1.为什么要做分布式?

Jmeter 默认最大支持 1000 左右的并发用户数(线程数),当使用jmeter进行分布式测试时,并发数比较大,在大量并发情况下,很容易出现CPU、内存消耗过大的问题,甚至会出现java内存溢出。

如下图: 解决办法: 1.linux环境下运行时直接加大运行内存: JVM_ARGS=“-Xms2g -Xmx2g -XX:MaxMetaspaceSize=2g” jmeter -n -t test_jk.jmx -l kx_report.jtl 或者 2.修改apache-jmeter-5.4.1/bin/jmeter

2.分布式原理:

Jemter分布式压测是选择其中一台作为调度机(master),其他机器作为执行机(slave);当然一台机器也可以既做调度机,也做执行机。

调度机执行脚本的时候,master将会jmx脚本分发到slave上,slave拿到脚本后以非GUI的形式开始执行。

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

3.环境准备:

在master 和slave 配置相同版本的jdk 、jmeter,以及相同的jmeter路径;

对Linux操作系统进行优化,主要是tcpip的操作系统参数,主要是为了防止客户端产生大量的TimeWait,而使客户端成为瓶颈;

jmeter安装: 1.建议直接将本地的jmeter压缩上传至服务器 2.unzip apache-jmeter-5.0.zip 3.chmod 777 -R apache-jmeter-5.0 4.用如下命令配置jmeter环境变量

  export JMETER_HOME=/opt/jmeter/apache-jmeter-5.0//注意,此目录为jmeter的安装目录

  export PATH=$JMETER_HOME/bin:$PATH

  export CLASSPATH=$JMETER_HOME/lib/ext/ApacheJMeter_core.jar:$JMETER_HOME/lib/jorphan.jar:$CLASSPATH

使用以下命令使修改的配置文件生效

source /etc/profile

5.安装配置完成后

jmeter -v

出现以下说明安装配置成功

4.分布式压测Linux配置

slave配置: 以下以xxx.xx.2.109 修改bin目录下的jmeter.properties,主要修改以下几项: jmeter的端口默认为1099,也可以修改为其他端口,前提修改后的端口未被占用 server_port=1099 server.rmi.localport=1099 server.rmi.ssl.disable=true //关闭SSL校验,默认是注释掉的;

slave启动: meter-server -Djava.rmi.server.hostname=xxx.xx.2.109 ,启动 anget 节点。jmeter-server 后面的参数指定 agent 的 IP这里是启动slave上的jmeter服务。 如果如下信息,说明启动成功: created remote object: xxxxxx 说明anget 节点启动成功了; 当前测试任务启动或结束时,会出现以下信息: Starting the test on host xxxxx :测试任务开始了 Finished the test on host xxxx :测试任务结束了

备注: 如果觉得上面的启动命令太长记不得,可以在jmeter-server文件中修改以下内容: RMI_HOST_DEF=-Djava.rmi.server.hostname=xxx.xx.2.109 然后只要在bin路径下输入sh jmeter-server

master配置: 以下以xxx.xx.2.108,此配置是将 2.109作为slave 的同时,也作为master 主机机使用; 对bin下的jmeter.properties 文件进行修改 ,主要是以下两项: remote_hosts=xxx.xx.2.108,xxx.xx.2.109 server.rmi.ssl.disable=true

5.运行场景: jmeter -n -t test.jmx -R xx.12.66.64,xx.12.66.65 -l test.jtl 或 jmeter -n -t test.jmx -r -l test.jtl

参数 n:非gui运行 t:指定测试脚本 R:指定多少个 agent 启动并参与测试 r: 代表全部 agent 启动并参与测试 l:生成测试结果文件

注意点⚠️ 1.如果出现参数配置文件,slave机器上也要存放一份,同master路径一致 2.master也作为执行机则需要以下配置:

jmeter.properties文件,remote_hosts配置上master机器的IP+slave机器的IP,以逗号隔开,经实际测试,注意:一定是配IP,不是配127.0.0.1,不然当不了执行机;master机器上,修改jmeter-server文件中:RMI_HOST_DEF=-Djava.rmi.server.hostname=http://xxx.xxx.xxx.xxx,将这里设置为master机器的ip地址; master上启动./jmeter-server:针对master机器新开一个Linux窗口,先运行./jmeter-server, 不要忘了这一步;再回到当前窗口执行命令:sh jmeter.sh -n -t X.jmx -l X.jtl -e -o /xxx/html/report -r,则会发现master机器也作为压力机发起压力了 执行结束后下载HTML报告到本地用于填写报告使用: 进入report文件夹下,打包report文件夹:zip -r report.zip ./* ./*是指将当前目录下的所有文件和文件夹全部压缩 下载:sz report.zip 下载后打开index.html即为本次压测的jmeter的HTML报告:

相关阅读

评论可见,查看隐藏内容

网址:Linux环境下进行jmeter分布式压测配置 https://m.mxgxt.com/news/view/2024914

相关内容

是否要从单片机转嵌入式Linux?
娱乐公司环境布置方案.docx
Linux内核与DPDK
微量液滴压电式分配与图像监测实验平台研究
Star 1.6k!当Web遇上Linux和数据库!一站式管理平台的开源之旅!
科普文, linux环境下,逻辑卷管理LVM
linux如何root登陆?microsd卡是什么
PBM环境监测
在华为云上通过Docker容器部署Elasticsearch并进行性能评测
影视服务器搭配什么配置

随便看看