目 录CONTENT

文章目录

性能测试-第五节(监控体系)

兜兜管理员
2025-01-25 / 0 评论 / 0 点赞 / 17 阅读 / 0 字
温馨提示:
本文最后更新于2025-02-20,若内容或图片失效,请留言反馈。 部分素材来自网络,若不小心影响到您的利益,请联系我们删除。

1. 理解什么是性能测试的监控

为什么要有监控体系?

项目--日益复杂(内部除了代码外,还有中间件,数据库)

核心概念:任何一个环节有性能问题,这个程序一定有性能问题.

一个系统,背后可能有多个软(硬)件组合支撑. 影响性能的因素可能是任意一个组件。

如果仅仅是通过TPS,RT,吞吐量这些单个目标去分析,占用大量的时间.

网络问题:带宽是否足够,分析有没有丢包

服务层问题:TPS,RT,错误率,异常,垃圾回收

中间件:超时,线程池,缓存命中,消息积压

数据库: 锁,索引,慢SQL

服务器层面: CPU 内存,磁盘

服务层问题这是结果,反映的是当前负载下性能表现,这是结果,但是为什么是这个数据?

哪些东西影响了他?怎么优化?

总结:测试手法巨简单,一个基准测试 + 负载测试,我们就有一个结果

期望有个东西: 把基础监控,指标监控,业务监控,链路监控都放到一起去.

grafana (它负责展示测试数据,能支持长时间的测试.)

2. 理解监控体系的面板数据是怎么来的

当我们理解了这个概念后:

为什么grafana没展示图表?

influxDB配置问题. -- jmeter 设置是否有误

搭建一个比较简单的监控

3. 理解怎么去搭建监控

grafana搭建

拿到三个文件 如下 (没有的去课堂派下载):

上传到你的服务器中(这里建议最好用xshell之类的工具,如果对命令不熟悉的同学不用硬来), 开始按顺序进行操作:

安装grafana:

sudo yum install -y   你的grafana包名(例如:我这里的名字是 grafana-enterprise-10.4.1-1.x86_64.rpm)

如果出现错误:

检查 网络是否能连通外网!

如果没有yum 命令,请按网络配置文档(文档在课堂派)中的第三项 去设置yum

出现以下文字,表示安装已完毕:

这时候执行命令如下:

重新加载系统的守护程序配置:

sudo systemctl daemon-reload

启动grafana服务:

sudo systemctl start grafana-server  (这个命令可能会卡一会儿,耐心等待。。。)

检查启动状态

sudo systemctl status grafana-server

出现上图,就表示启动成功了。

设置开机启动:

sudo systemctl enable grafana-server.service

尝试访问: ip + 3000端口 出现以下图形就表示成功了

安装influxDB 

同理,上传到服务器

执行安装命令:

sudo yum install -y influxdb-1.8.4.x86_64.rpm

可以用这种方式安装.

启动:

systemctl start influxdb

查看influxDB状态:

systemctl status influxdb

设置开机启动:

sudo systemctl enable influxdb.service

验证服务启动情况:

influx

退出命令: exit

这里需要注意: 进入到influxdb中 去执行命令(需要创建数据库)

create database jmeter

部署 prometheus

同样,上传到linux上

执行命令:

tar xvfz prometheus-2.51.1.linux-amd64.tar.gz

名字太长,修改个简单的 :

mv prometheus-2.51.1.linux-amd64 prometheus-2.51.1

配置环境变量:

vi /etc/profile

在文件最后添加:

export PROMETHEUS_HOME=/你安装的路径/prometheus-2.51.1

export PATH=$PATH:$PROMETHEUS_HOME

让环境变量生效:

source /etc/profile

启动: 注意 prometheus 启动,需要带配置文件prometheus.yml

如在prometheus 目录下 :

直接用命令:

prometheus

否则用命令:

prometheus --config.file=/你安装的路径/prometheus2.51.1/prometheus.yml

先来学习下,怎么完成第一步:让grafana 与 influxdb结合运行

然后选择dashboards

就能看到一个常规的面板所在

接下来我们来看看jmeter:

4. 理解性能测试到底在分析什么

性能测试在做什么? --

通过我们给定的场景,去看服务器的表现形式.

我们不能去解决问题!(我们是照X光的人)

工作流程:

提需求: 去把这个项目的性能测试一下. 目标:能抗住多少并发?(找瓶颈)

我们要做的事情:确认我们的资源 -- 我不用一个人去解决所有问题!

必须要的东西: 与生产环境配置类似的 性能测试服务器。

如果这个安排的人 不懂性能测试 -- 你就在测试环境测  沟通:这么测没用,结果不会准确.

性能测试计划:一定要描述,因为测试环境与生产环境不一致,所以结果不一定准确。

测试环境的部署与搭建 -- 不用你自己去部署项目,可以找开发帮忙搭建.

性能测试:其实很简单,初期,我们只需要干两件事 --

找到对应流程中的接口

(如果不确定,用录制的方式找.) 写到测试计划中去! --

找架构师看,计划发给他。我现在初期选定的接口是这些,你看看有没有遗漏的?

手法:

找瓶颈 -- 基准测试数据 + 自己的推论,单接口吞吐量:xxx?

梯度压测 -- 找到结论

上下浮动 10% 去找到瓶颈所在。

把结果写在测试报告中.

0

评论区