前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Jmeter Suite压测工具详细使用说明

Jmeter Suite压测工具详细使用说明

原创
作者头像
郑超超
修改2020-12-08 13:20:38
2K0
修改2020-12-08 13:20:38
举报

文章https://cloud.tencent.com/developer/article/1753788 已经简述了Jmeter Suite的操作过程,为了更为详细地介绍操作过程,尽可能做到看文章就会用工具,特此写了一篇详细说明。

压测机器购买

Jmeter Suite是一套分布式的压测服务,需要有1台或者多台机器组成的K8S集群进行部署。所以在部署压测服务之前,请先自行购买机器。

1、购买机器步骤(以腾讯云为例)

进入腾讯云“容器服务”
进入腾讯云“容器服务”
切换到“集群”的Tab,点击“新建”,新建集群
切换到“集群”的Tab,点击“新建”,新建集群
根据需要购买集群和配置,详细配置可参照下下一节,其他默认即可
根据需要购买集群和配置,详细配置可参照下下一节,其他默认即可
另外需要注意的是,机器的安全组记得要把局域网都放通,以免出现节点之前访问不了的情况
另外需要注意的是,机器的安全组记得要把局域网都放通,以免出现节点之前访问不了的情况

2、机器配置建议

根据Jmeter性能的研究,得出如下的机器配置建议。在上一步购买机器的时候,可以根据你的预期QPS值,购买相应的机器即可。

Server节点配置建议

QPS

节点数

CPU(核)

内存(GB)

网络入带宽(Mbps)

网络出带宽(Mbps)

IO写(KB/s)Max/min

机器资源

1800

等于机器数量

1

每增加一节点增加2GB

大于25~60,视乎请求体和请求返回体大小决定。应时刻关注带宽是否够用,不够的时候扩容(或者按3Kbps每QPS)

一般不需要特别配置(CBS默认已有150MB/s的写入速度)

Master节点配置建议

QPS

节点数

CPU(核)

内存(GB)

网络入带宽(Mbps)

网络出带宽(Mbps)

IO写(KB/s)Max/min

机器资源

/

1

server总CPU核数的1/3

每增加一节点增加1GB

无要求,设置最低即可

一般不需要特别配置(CBS默认已有150MB/s的写入速度)

比如,如果我们需要压测一个目标QPS为5000的业务,按照上面的推荐配置,我们需要如下配置的机器:

Server节点按照每核能够支撑1800QPS来算,目标5000 QPS,则需要3个核的CPU资源,而因为3核心还是比较少的,所以节点数只需要1。按照节点数为1来算,内存需要2GB。Master按照1核1GB内存算即可。

CPU(核)

内存(GB)

网络入带宽(Mbps)

网络出带宽(Mbps)

IO写(KB/s)Max/min

server

3

2

15(达到瓶颈后扩容)

默认

master

1

1

0

默认

总资源要求

4

3

15

默认

如果觉得上面的推算都太复杂,那么只需要对CPU进行估算即可,即“目标QPS/1800”确定CPU核数,留下50%的冗余,选择相应机型即可。

压测工具安装

压测工具安装可以参考文章:https://cloud.tencent.com/developer/article/1753788

部署方式1:Helm3部署

安装Helm3(不能用Helm2)

代码语言:javascript
复制
wget https://get.helm.sh/helm-v3.2.1-linux-amd64.tar.gz
tar -zxvf helm-v3.2.1-linux-amd64.tar.gz
cp linux-amd64/helm /usr/local/bin/

Checkout代码

代码语言:javascript
复制
git clone https://github.com/tkestack/charts.git

部署压测集群

代码语言:javascript
复制
helm install test-name incubator/jmeter-suite

部署方式2:TKE市场部署

如果觉得使用Helm部署还是太麻烦的话,你也可以直接在TKE市场直接点部署

发起测试

Checkout代码,打开jmeter-suite目录

代码语言:javascript
复制
git clone https://github.com/tkestack/charts.git
cd jmeter-suite

启动一次测试

代码语言:javascript
复制
sh start_test.sh demo/Test.jmx

脚本编写

参考文章:https://docs.qq.com/doc/DTFlMZmZsYk1PVlB1

1、加入后置监听器写入结果

Jmeter脚本的编写,可以参考这里https://github.com/tkestack/charts/jmeter-suite/demo/Test.jmx 这里的Jmeter脚本即可。但是有一点值得注意的是,为了便于分析结果,需要把数据写入influx,所以需要在Jmeter脚本里面添加后置监听器

2、断言如何写

为了对结果进行判断,我们一般会加入断言。但是断言如何写,很大程度上会影响施压机的性能,所以可以根据自己的需要写断言。

(1)断言写法1:对body进行判断

对body进行判断,可以对结果进行比较复杂的处理,但是缺点是性能消耗较大

BeanShell可以对结果进行比较丰富和复杂的判断,适合于结果返回较为复杂的情况
BeanShell可以对结果进行比较丰富和复杂的判断,适合于结果返回较为复杂的情况

(2)断言写法2:对返回代码进行判断

对返回代码进行判断,可以节省大量的性能,但缺点是不能输出更多的东西

查看结果

如果想查看测试结果,先找到你的机器IP地址

代码语言:javascript
复制
kubectl get node -o wide | grep $(kubectl get pod -o wide | grep grafana | awk '{print $7}') | awk '{print $7}'

然后访问下面地址即可(注意开放入站安全组)

代码语言:javascript
复制
http://机器IP:31221

结果分析

参考文章:https://docs.qq.com/doc/DTE9LZUtxa0xaSktH

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 压测机器购买
    • 1、购买机器步骤(以腾讯云为例)
      • 2、机器配置建议
      • 压测工具安装
        • 部署方式1:Helm3部署
          • 部署方式2:TKE市场部署
          • 发起测试
          • 脚本编写
          • 查看结果
          • 结果分析
          相关产品与服务
          云硬盘
          云硬盘(Cloud Block Storage,CBS)为您提供用于 CVM 的持久性数据块级存储服务。云硬盘中的数据自动地在可用区内以多副本冗余方式存储,避免数据的单点故障风险,提供高达99.9999999%的数据可靠性。同时提供多种类型及规格,满足稳定低延迟的存储性能要求。
          领券
          问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档