JMeter 集群搭建方法整理

您所在的位置:网站首页 jmeter环境搭建 JMeter 集群搭建方法整理

JMeter 集群搭建方法整理

2023-12-31 00:18| 来源: 网络整理| 查看: 265

文章目录 版本记录说明存疑问题JMeter 简单说明下载及安装如何查看说明文档`$JMETER_HOME/bin` 文件夹下文件的说明如何调整 JMeter 的JVM配置 集群说明启动 被控节点 的 JMeter server主控节点 分发任务主控节点 中途停止集群测试 CSV 文件的处理

版本记录 日期人员类型版本说明2019年12月22日dcmini创建v1.0.0 说明

在搭建JMeter 测试集群的过程中遇到了一些坑在这里做一些记录, 如果有什么问题欢迎大家在评论中指出。

存疑问题 序号说明是否解决解决日期1如何使用命令行参数或者环境变量来改变JVM的运行参数否2JMeter server 启动时,在命令行中加上 server.rmi.ssl.disable 参数会失效,必须到jmeter.properties 文件中修改否3集群模式 server 读取 csv 文件是否有其他更好的方式,目前只能等分切分才能保证不重复读取否 JMeter 简单说明 下载及安装

推荐去官网下载: https://jmeter.apache.org/download_jmeter.cgi

解压缩后就可以跑起来了。

ps:

我不喜欢在 环境变量里配置 JMETER_HOME ,因为测试机器一般是临时开的有的时候还是借用其他环境的机器用完之后还要删除,感觉很麻烦。 如何查看说明文档

打开 $JMETER_HOME/printable_docs/index.html,这个和官方文档是一样的,离线看速度快一点儿。 在这里插入图片描述

$JMETER_HOME/bin 文件夹下文件的说明 jmeter: linux 环境下的启动脚本jmeter-server:linux 环境下 server 的启动脚本jmeter.bat:windows 环境下的启动脚本jmeter-server.bat:windows 环境下 server 的启动脚本

这里需要注意的是 jmeter-server* 文件调用的还是 对应的 jmeter 文件,所以我们需要多 jmeter-server 进行的配置都需要在 jmeter 文件中找答案。 在这里插入图片描述

如何调整 JMeter 的JVM配置

因为 JMeter 是用 JAVA 编写的,所以其启动方法肯定就是运行 java -jar 这条命令,所以几乎所有的配置都是挂在这条命令之下的。我们可以看一下启动文件中都挂了哪些参数。 以 $JMETER_HOME/bin/jmeter 文件为例,在其最后一行前加上 echo 命令。 在这里插入图片描述然后我们启动 JMeter 就可以看到其拼写出来的 java -jar 命令

/Library/Java/JavaVirtualMachines/jdk1.8.0_191.jdk/Contents/Home/bin/java -server -XX:+HeapDumpOnOutOfMemoryError -Xms2g -Xmx2g -XX:MaxMetaspaceSize=512m -XX:+UseG1GC -XX:MaxGCPauseMillis=100 -XX:G1ReservePercent=20 -Djava.security.egd=file:/dev/urandom -Duser.language=en -Duser.region=EN -Xdock:name=JMeter -Xdock:icon="./../docs/images/jmeter_square.png" -Dapple.laf.useScreenMenuBar=true -Dapple.eawt.quitStrategy=CLOSE_ALL_WINDOWS -jar ./ApacheJMeter.jar

我们来理一下这些参数

-server JMeter单机启动也是启动一个 server ,地址是默认的 127.0.0.1-XX:+HeapDumpOnOutOfMemoryError 当内存溢出的时候储存 heap dump文件,文件可以使用 JAVA 的 jhat 命令生成网页报告,也可以使用 Eclipse Memory Analyzer(MAT) 来生成报告。-Xms2g JVM 初始分配的内存-Xmx2g JVM 最大分配的内存-XX:MaxMetaspaceSize Meta区最大-XX:+UseG1GC 启动 G1 回收器-XX:MaxGCPauseMillis 设置每次年轻代垃圾回收的最长时间-XX:G1ReservePercent 设置堆内存保留为假天花板的总量-Djava.security.egd JAVA 用于加快可靠算技术的产生-Duser.language 用户语言-Duser.region 用户区域-Xdock:name dock 名字-Xdock:icon dock 图标-Dapple.laf.useScreenMenuBar 不知道是啥意思😿-Dapple.eawt.quitStrategy 不知道是啥意思😢

我们打开 $JMETER_HOME/bin/jmeter 可以看到这些参数都是写在这份文件中的。 那么这里就有一个疑问了我们可以通过哪些方式来修改 JVM 的参数呢?

修改 $JMETER_HOME/bin/jmeter 文件命令行参数环境变量

测试发现只能修改$JMETER_HOME/bin/jmeter文件能够修改。 这里我不是很理解为什么 JMeter 不设计然我们用命令行或者环境变量来修改JVM参数,可能是我没有找到,如果大家有知道的话请留言告诉我

集群说明

JMeter 的集群模式是主从结构,主控节点负责分发执行脚本,被控节点用于执行分发下来的脚本。 在这里插入图片描述

启动 被控节点 的 JMeter server $ ./jmeter-server \ -J server_port=40005 \ -J server.rmi.localport=40005 \ -J server.rmi.ssl.disable=true \ -D java.rmi.server.hostname=192.168.0.3

当然大家也可以使用 nohup ... & 到后台运行

参数说明

server_port 服务监听端口server.rmi.localport rmi 监听端口server.rmi.ssl.disable rmi ssl 关闭java.rmi.server.hostname rmi hostname 在多网卡的时候必须配置

在这里还是有一个问题,那就是有的时候 server.rmi.ssl.disable 这个配置好像是不生效的,需要到 jmeter.properties 文件中 将 server.rmi.ssl.disable 改成 =true 才可以。

主控节点 分发任务

这里可以使用GUI界面进行任务的下发, 也可以使用no-GUI模式下发,我还是喜欢后者,但是我没有比较过这两者在性能上有多大的差距,大家如果知道的话请告诉我。

$ ./jmeter \ -R 192.168.2.243:40005 \ -D java.rmi.server.hostname=192.168.1.78 \ -n -t '/root/car_share_jmeter/jmx/MQTT-No1-01.jmx' \ -l '/root/car_share_jmeter/result/MQTT-No1-00001-10000-1000-1-2019年12月20日首次.csv' \ -G thread_numOfThreads=10000 \ -G thread_rampUpPeriod=1000 \ -G lp_pubMessage=7 \ -G csv_deviceInfo='/root/car_share_jmeter/csv/10000/MQTT_TEST_01_10000.csv' \ -G ct_pubMessage=570000

这里就算变贴一个以前项目的测试命令,参数说明

-R 远程 server 的地址,多个 server 用 , 隔开-D rmi 的 hostname 多网卡的时候需要配置-n 使用非GUI 模式启动-t 测试脚本文件路径-l 结果文件地址,这里也是有一个问题,那就是这个文件的目录必须事先创建好,感觉非常不方便。-G 测试脚本的一些自定义参数,这里发现 -J 在集群模式下是不起作用的 主控节点 中途停止

以前我每一次要中途停止测试都是 ctrl + c 强制停止线程,后来发现这个方法好蠢。在 $JMETER_HOME/bin 目录下随便找一下就有 stoptest.sh 脚本,看名字就是用来中途停止测试的。

在主控节点上运行 ./stoptest.sh 就可以停止测试。

集群测试 CSV 文件的处理

很多时候我们需要让 JMeter 从 csv 文件中读取模拟用户的用户名和密码来模拟多用户登陆的场景,在单机模式时只要填写上文件路径就可以了,但是在集群模式下 各个 server 是不知道对方的存在的,所以需要我们自己来避免集群中的多个线程读取到同一条csv 文件记录。

我使用的方法是将csv文件按照 server 数量均匀拆分 并保存到 被控节点的相同目录下。

如果大家有更好的办法请告诉我。



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3