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

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报告:
  • 1
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Linux环境下搭建JMeter分布式压测环境时,可能会遇到一些问题。其中一个常见问题是启动./jmeter-server时出现"Cannot start. localhost.localdomain is a loopback address"的错误信息。解决这个问题的方法是编辑jmeter-server文件,设置固定的代理服务器主机IP。具体步骤如下: 1. 打开Linux中的jmeter-server文件: ``` cd /opt/apache-jmeter-4.0/bin vi jmeter-server ``` 2. 在jmeter-server文件中找到RMI_HOST_DEF这一行,并取消注释: ``` # One way to fix this is to define RMI_HOST_DEF below RMI_HOST_DEF=-Djava.rmi.server.hostname=192.168.248.130(当前机器ip) ``` 将当前Linux主机查询到的IP地址填入RMI_HOST_DEF的值中。 另外,还需要确保CLASSPATH环境变量正确设置。可以使用以下命令设置CLASSPATH: ``` export CLASSPATH=${JMETER}/lib/ext/ApacheJMeter_core.jar:${JMETER}/lib/jorphan.jar:$JMETER/lib/logkit-2.0.jar:${CLASSPATH} ``` 此外,还需要在jmeter.properties文件中进行一些配置。可以通过编辑jmeter.properties文件,将以下配置项设置为true: ``` jmeter.save.saveservice.output_format=xml jmeter.save.saveservice.response_data=true jmeter.save.saveservice.samplerData=true jmeter.save.saveservice.requestHeaders=true jmeter.save.saveservice.url=true jmeter.save.saveservice.responseHeaders=true ``` 通过以上步骤,你就可以在Linux环境下成功搭建JMeter分布式压测环境了。 #### 引用[.reference_title] - *1* [Linux环境下搭建jmeter分布式压测](https://blog.csdn.net/shanezhijian/article/details/124668524)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* *3* [Jmeter分布式压测环境搭建](https://blog.csdn.net/weixin_51084345/article/details/127261500)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值