搭建jmeter分布式压测机_jmeter压测集群ip-程序员宅基地

技术标签: 笔记  压力测试  分布式  

一、前言

        最近收到一个任务,需要压测某个后端服务接口,量级分别3W、6W、10W持续增量,然后就根据这个需求搭建了一个jmeter分布式负载机,其中也遇到不少坑,遂进行总结

二、搭建分布式负载机集群

本文采用A、B、C三台机器作为样式,A操控BC(集群)
A为操控机,IP 192.168.1.1
B为远程负载机,IP 192.168.1.2
C为远程负载机,IP 192.168.1.3
jmeter版本5.0

  1. 首先确保ABC三台机器jmeter版本都要一致,否则会出现问题
  2. 对A、B、C三台机器的jmeter文件进行解压,生成jmeter目录在这里插入图片描述
  3. 先修改A机器,进入到./apache-jmeter-5.0/bin目录下,执行./create-rmi-keystore.sh文件创建rmi连接密钥

jmeter4版本以后操控负载机需要建立RMI连接通讯,需要使用到密钥
密钥内存可以跳过,直到遇到提示no你选择yes,自己设置相应密码即可生成密钥,然后会在./bin目录下生成rmi_keystore.jks
在这里插入图片描述

  1. 将rmi_keystore.jks文件复制到BC两台机器的bin目录下即可
  2. 修改A机器的./bin/jmeter.properties配置文件
#控制的目标负载机的IP+端口,1099端口是jmeter-server启动的默认端口,后面会讲到
remote_hosts=192.168.1.2:1099,192.168.1.3:1099
#开启rmi连接
server.rmi.ssl.disable=true

7.然后修改vi ./bin/jmeter脚本文件(A、B、C均要修改)

#将默认的1g、256改成自己想要设置的大小,这是由于jmeter底层是java语言,所以创建并发用户需要耗费jvm堆内存大小资源,所以尽量设置大一点,否则你的并发用户数可能达不到你的预期量级
: "${HEAP:="-Xms3g -Xmx3g -XX:MaxMetaspaceSize=768m"}"
  1. 到这里A已经设置OK,去BC两台机器上修改配置,以B为例同样修改./bin/jmeter.properties配置文件
#开启rmi连接
server.rmi.ssl.disable=true
  1. 启动./bin/jmeter-server脚本
#当前机器IP
./jmeter-server -Djava.rmi.server.hostname=172.31.121.79 &

. 执行netstat -tnpl可以看到启动服务对应的端口,1099启动OK
在这里插入图片描述
11.然后将你录制的jmx的脚本放在你对应的目录下,我直接放在A机器的jmeter的bin目录下
在这里插入图片描述
12.在A机器中启动压测脚本操控负载机运行,./jmeter.sh -n -t maidian1.jmx -l ./result.jtl -r -e -o ./res

-n表示非GUI模式
-t表示要运行的jmx脚本文件路径
-l生成jtl文件
-r表示启动远程负载机,默认会去jmeter.properties文件去找remote_hosts配置好的地址
-e表示负载测试后生成报告
-o表示压测报告的输出目标文件夹

13.执行后控制台会出现如图所示输出,打印你连接的负载机,你的接口请求总量级
在这里插入图片描述
14.然后会在你指的的目录下生成res文件,这是生成的测试报告,打开里面的index.html文件或者将其部署到Tomcat容器都可以
在这里插入图片描述

三、报告生成内容字段解释
  • Label:每个 JMeter 的 element(例如 HTTP Request)都有一个 Name 属性,这里显示的就是 Name 属性的值。
  • #Samples:表示你这次测试中一共发出了多少个请求,如果模拟10个用户,每个用户迭代10次,那么这里显示100。
  • Average:平均响应时间——默认情况下是单个 Request 的平均响应时间,当使用了 Transaction Controller 时,也可以以Transaction 为单位显示平均响应时间。
  • Median:中位数,也就是 50% 用户的响应时间。
  • 90%95%99% Line: 90% 95% 99% 用户的响应时间。
  • Min:最小响应时间。
  • Max:最大响应时间。
  • Error%:本次测试中出现错误的请求的数量/请求的总数。
  • Throughput:吞吐量——默认情况下表示每秒完成的请求数(Request per Second),当使用了 Transaction Controller 时,也可以表示类似 LoadRunner 的 Transaction per Second 数。
  • Received KB/Sec:每秒从服务器端接收到的数据量。
四、踩坑的地方
  • 对操控机,负载机都要设置jvm内存大小,因为jmeter默认启动堆内存大小只有1g,元空间256m,可以根据当前机器内存大小进行适当调整,否则在run的时候会出现堆内存溢出的报错
  • 若压测的接口量级过高,可调高ramp-up的值来减轻操控机的负担,否则操控机的CPU会负载过高,且堆内存溢出错误。(我将操控机堆内存设置3G都没用)
  • 若并发用户数有指标要1W可以创建20台负载机每台分均500并发用户,负载机的配置1C2G足够,不建议单台负载机配置高并发用户设置高的情况
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_40686603/article/details/107033094

智能推荐

python编码格式_non-ascii character '\xc9' in file-程序员宅基地

文章浏览阅读370次。#!/usr/bin/env Python# -*- coding: gbk -*- #上面这句很重要,声明了python文件编码,常用的编码方式有utf8/utf-8/gbk/gb2312,没有此句会报错,#SyntaxError: Non-ASCII character '\xc9' in file request1.py on line 3, but no encoding _non-ascii character '\xc9' in file

为什么要参加PMP考前培训?有什么好处?_pmp培训目的-程序员宅基地

文章浏览阅读177次。PMP是指项目管理专业人士资格认证。它是由美国项目管理协会(Project Management Institute(PMI)发起的,严格评估项目管理人员知识技能是否具有高品质的资格认证考试。其目的是为了给项目管理人员提供统一的行业标准。目前,美国项目管理协会建立的认证考试有:PMP(项目管理师)已在全世界200多个国家和地区设立了认证考试机构。PMP培训也是一种较为专业的学习,是把项目管理作为一种科学理论来学习,但最后还要在实践中灵活运用。PMP培训把项目管理作为一门独立的学科来学习,把项目管_pmp培训目的

vmvare虚拟机连网-程序员宅基地

文章浏览阅读451次。安装完虚拟机,及相应的操作系统后。会在控制面板里的网络连接面板里多出两个连接,一个是VMnet1,一个是VMnet8两个都是虚拟网卡,用于虚拟机内操作系统连网用的。可以通过两种方式连网:1)bridged的网桥方式2)NAT方式需要相应的设置。启动对应的网卡,在vm settings->ERTHENET 里选择对应的连网方式。

HADOOP HDFS详解_hadoop详细-程序员宅基地

文章浏览阅读1k次,点赞16次,收藏21次。Volume: 数据量非常大Variety:数据类型多样化,组成庞大的数据集的数据,有结构化的,半结构化的非结构化的数据。Velocity:数据增长的速度非常快Value: 数据的价值低数据快速增长超过硬件存储及传输增长的速度因硬件故障造成的数据丢失读取的数据的正确性hadoop是Apache基金会旗下一个开源的分布式存储和分析计算平台,使用java语言开发,具有很好的跨平台性,可以运行在商用(谦价)硬件上,用户无需了解分布式底层细节,就可以开发分布式程序,充分使用集群的高速计算和存储。_hadoop详细

获取授时时间_GPS/北斗授时模块是怎样实现授时功能的?-程序员宅基地

文章浏览阅读3k次。授时是卫星导航系统的重要功能,授时精度与定位精度、测速精度一起被称为导航定位系统的三大指标。本篇专业GNSS授时模块研发厂家SKYLAB就简单为大家介绍GPS/北斗授时模块是怎样实现授时功能的?我们想要得到高精度的导航定位结果,就需要对时间测量得很准的设备,这个在卫星上主要是通过星载原子钟得到的,星载原子钟包括氢原子钟、铷钟等设备,原子钟的原理是:原子中的电子从一个能级跃迁到另一个能级的时候频率很..._gps怎么授时

R语言经纬度度分秒转小数点_r语言 read.excel 小数点-程序员宅基地

文章浏览阅读2k次,点赞2次,收藏4次。经纬度有两种常见的形式,度分秒形式和小数点形式。在GIS软件中,利用经纬度生成坐标点一般都需要将度分秒形式的经纬度转换为小数点形式,如何方便的进行转换呢?EXCEL确实可以,但是每次都要修改很多公式,而且经常不知道为啥报错,今天我终于用R语言写出来了一个小程序,可以比较方便的将EXCEL中的度分秒经纬度转化为小数点,在这里记录分享一下。EXCEL转换方式可以参阅往期文章:GIS基础教程之坐标系R语言安装部署请参阅:R语言安装部署基础下面是今天拿到的经纬度度分秒数据,表头E, N东经北纬,用._r语言 read.excel 小数点

随便推点

odoo9.0 如何将链接指向自定义form_odoo form_view_ref-程序员宅基地

文章浏览阅读2.3k次。1、链接默认指向原生form中。2、如果想让该链接跳转到自定义的form中,需要配置context,在其中增加form_view_ref属性,比如context="{'form_view_ref': 'odoo9_model.odoo9_product_hxy_form'}",odoo9_model是moduls模块名称,odoo9_product_hxy_form_odoo form_view_ref

T-Mobile G1手机入手作业-程序员宅基地

文章浏览阅读199次。新的T-Mobile G1手机是不能够直接使用的,我们必须要对它进行破解操作(也就是激活系统)。目前有两种比较简单有效的方法供用户们选择,一种是去某些网站直接花USD购买激活码,另一种方法就是使用卡贴。下面就开始我的android之旅~1、同步联系人注册Gmail邮箱注册Gmail邮箱  首先,你要去申请一个gmail的邮箱,然后把你的联系人从其他的手机导入gmail邮箱中。我...

linux 访问控制列表(ACL)和GPG安全详解和操作示例-程序员宅基地

文章浏览阅读495次,点赞17次,收藏8次。当你需要在Linux系统上实现更细粒度的文件访问控制和数据加密时,可以使用访问控制列表(ACL)和GNU Privacy Guard(GPG)来提高文件和数据的安全性。

后台开发经典书籍--linux性能优化_linux系统调优书-程序员宅基地

文章浏览阅读513次,点赞7次,收藏2次。_linux系统调优书

Oracle prompt、set feedback、set define 详解_prompt importing table-程序员宅基地

文章浏览阅读3.6k次,点赞5次,收藏25次。文章目录1 结论2 演示3 详解3.1 prompt3.2 set feedback3.3 set define1 结论prompt : 提示信息,prompt 后面的内容原样输出set feedback:反馈信息,每执行一条 sql 命令,Oracle 都会给一条反馈信息,如: (1) 创建表成功时,Oracle 会反馈 Table created (2) 插入一条数据时,Oracle 会反馈 1 row inserted (3) _prompt importing table

Matlab制作表格_matlab制表-程序员宅基地

文章浏览阅读5k次,点赞6次,收藏21次。Matlab制作表格代码:效果:_matlab制表