15丨性能测试场景:如何进行监控设计?

本文详细阐述了性能测试中监控设计的重要性,强调了性能测试工程师需要理解并实施监控环节。监控设计应包括分析系统架构、制定监控层次、选择合适的监控工具。文章介绍了从全局监控到定向监控的思路,例如对OS层和DB层的监控细化,并给出了监控工具的推荐。通过监控设计,性能测试人员能够更好地进行性能分析和问题定位。
摘要由CSDN通过智能技术生成

在性能测试中,我觉得监控是非常重要的环节。因为这是做性能分析的前提,走出这一步,才有后面的分析。

监控是性能分析承上启下的关键点。

设计监控是我们性能测试工程师必须要做的事情。当然了,仅仅设计监控是不够的,还要看懂监控数据才能分析。我们将在后面的篇幅一一拆解。

我觉得性能测试工程师也一定要自己去实现一遍监控的环节,而不是直接用其他团队搭建的监控工具。你可以自己找个 demo 服务器做一遍,这样才能真正理解后续要关注的点在哪里。

之前在一个项目上,我跟团队成员说,把监控一层层部署起来。有个小姑娘提出一个疑问:“监控有什么要部署的吗?不是用 JConsole 就好了吗?”我说每个工具都有功能的局限性,所以要多种工具配合在一起才能有完整的数据可分析。然后我又问她这个想法从哪来的。她说之前带她的一个测试经理说的,对 Java 的应用,只要用 JConsole 监控就好了。我不知道他们的沟通上下文,但我理解如果不是这姑娘在断章取义,那就是这个测试经理引导错误了。

监控平台还指望别人给搭好,点个链接就能出数据了,这显然不是一个技术人员该有的样子。

监控设计步骤

如果要让性能测试人员设计监控逻辑,要如何做呢?

首先,你要分析系统的架构。在知道架构中使用的组件之后,再针对每个组件进行监控。

其次,监控要有层次,要有步骤。有些人喜欢一上来就把方法执行时间、SQL 执行时间给列出来,直接干到代码层,让人觉得触摸到了最顶级的技能。然而在我的工作中,通常不这么做,应该是先全局,后定向定量分析

最后,通过分析全局、定向、分层的监控数据做分析,再根据分析的结果决定下一步要收集什么信息,然后找到完整的证据链。

这才是监控应该有的步骤,才能体现监控的价值。

监控技术图谱

这张图是我认为在一个性能测试中,该有的技术图谱。

img

从这个图中我们可以看到,除了压力工具之外,还有很多技术细节。通常在各种场合下,我都会说,这些都是我们要学习的范围,做性能分析的人,不一定能完全能掌握这些内容,那你所在的性能团队就应该有这样的能力。因为性能团队要推进瓶颈的定位解决,所以要有和其他团队正面沟通的能力。

下面我们就以具体的操作过程来说明设计的落地过程。

现在的流行框架(比如说 Spring Cloud)中的熔断监控、限流服务、服务健康检查/监控、链路监控、服务跟踪、聚合监控等等,都是非常好的监控手段。比如说下面这样的架构图:

img

这是比较常见的微服务技术架构。其中很多开源工具已经提供了监控的能力。在网上也能找到一些部署搭建的资料,好像不提微服务、全链路就不好意思见人了似的。

对技术的发展,我们要拥抱。但对思路的梳理更为重要,因为框架平台工具都是为了实现目标而存在的。

在本篇中,我们还是回归根本,说一下监控设计的思路,讲清楚性能测试中应该如何拆分监控的点。当你看完了之后,即使是面对不同的架构,也有监控部署的思路。

架构图

那么我们就来到开始的位置了。做性能监控之前,先画一个最简单的架构图,看一下架构中各有什么组件,各有什么服务,将这些列下来,再找对应的监控手段和方式,看哪种手段和方式在性能测试过程中成本最低,效率最高。

如果把性能归到测试的这个阶段,那就必须先考虑测试的具体情况。

有些企业因为有长期的积累,监控平台完整又稳定,那显然是最好的。如果是短期项目类的性能测试,又涉及到多方企业的,基本上不要想有完整成熟的监控平台这件事了。

但是不管怎么样,我们都需要拿到架构的全局监控数据。针对下面的这个不大的架构,我们来考虑下如何拆分。

img

需要监控的内容如下:

操作系统

1、Nginx
2、Tomcat
3、Redis
4、MySQL

下面我就来细化下这个简单架构的监控设计。

监控设计

下图可以大概说明我对监控的整体设计理念。

img

我来说明一下:

我们要对整个架构做分层。

在每一个层级上列出要监控的计数器。

寻找相应的监控工具,实现对这些计

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值