• 性能测试-如何进行监控设计


    监控设计步骤

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

    其次,监控要有层次,要有步骤。先全局,后定向定量分析。

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

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

    监控技术图谱

    架构图

    做性能监控之前,先画一个最简单的架构图,看一下架构中 各有什么组件,各有什么服务,将这些列下来,再找对应的监控手段和方式, 

    需要监控的有:

    1、服务器操作系统

    2、nginx

    3、redis

    4、mysql

    5、代码层级

    6、测试结果 

    7、tomcat

    监控设计

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

    2. 在每一个层级上列出要监控的计数器。 寻找相应的监控工具,实现对这些计数器的监控。如果一个工具做不到,在定位过程中 考虑补充工具。

    3.  要做到对每层都不遗漏。

    识别出每个监控的节点和层级,再对应到架构

    最适合的监控方式是什么样的呢?那就是成本最低,监控范围最大,效率最快。 

    不建议一开始就把代码级的监控给加进来

    监控思路

    全局监控设计

    测试前就要有全局监控。

    OS层

    看linux架构图

    常用的计数器

     DB层(mysql为例)

     定向监控

    出现问题的时候,才用定向监控,定位问题的原因。

    OS 层之定向监控细化 1

    看到 CPU 消耗得多,那么你就得按照下面这张图细化思路

    流程图

     

    OS 层之定向监控细化 2

    当你看到 OS 全局监控图中的 Network 中的 Total 总流量比较大时,就要有这样的分析思 路(从右向左看):

    DB 层之定向监控细化 1

     DB 层之定向监控细化 2

    锁数据,平均时间为 754ms 

    分析产生锁的 SQL,看 SQL 的 Profiling 信息,再根据信息找下一步原因,最终给出解决 方案。

    监控工具

    如果要选择的话,肯定是用 Prometheus + Exporter 的思路会好一点。于是我们这样实现 全局的监控。

    OS、DB、nginx、REDIS都能用 Prometheus + Exporter方式监控

    tomcat

     如果是微服务架构,则需要监控服务状态,cluster,pod,微服务链路。

    不管你的架构有多么复杂,组件有多少,这样的监控逻辑都是一定要有的。适 合的工具要用,并且尽量多用,但工具还远远替代不了分析的思维逻辑。没有判断的能力,再强悍的工具也只是个花架子。

    总结

     对架构中的组件进行了分析之后,通过全局— 定向的思路列出要看的计数器,再通过相应的监控工具去实现,拿到要分析的数据。 这就完成了要做的监控设计和具体实施。 至于你是用什么工具去实现的,这并不重要,因为拿到监控数据,可供分析证据链最重要

    本文来自高楼老师课程笔记。

  • 相关阅读:
    酷开会员丨酷开系统让居家K歌变得更简单!
    【设计模式】Java 语言不同的编程范式-第1章
    前端react 18.2整合ckeditor富文本编辑器——配置插件、自定义toolbar工具栏
    基于Python实现心脏病数据可视化DEA+预测【500010103.1】
    【Unity3D】魔方
    Bun v0.8.0 正式发布,Zig 编写的 JavaScript 运行时
    Unity:UI自动布局与多级菜单
    20231009比赛总结
    webfunny埋点系统
    R语言使用caret包的getModelInfo函数获取caret包中提供的模型算法列表
  • 原文地址:https://blog.csdn.net/seanyang_/article/details/133752886