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


    监控设计步骤

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

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

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

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

    监控技术图谱

    架构图

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

    需要监控的有:

    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,微服务链路。

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

    总结

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

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

  • 相关阅读:
    GBase 8c导出单个数据库
    十个关于商业智能商业智能BI的观点,你认同几个?
    Go语言的100个错误使用场景(30-40)|数据类型与字符串使用
    【JavaWeb】会话的学习笔记:Cookie和Session的知识点,这一次我总算学明白了
    linux命令安装python Django
    darknet框架 训练分类模型及测试图片
    SSL证书一次性购买多年期,有什么好处?
    javaweb+MySQL阶段总结
    Spring的循环依赖
    【2023云栖】黄博远:阿里云人工智能平台PAI年度发布
  • 原文地址:https://blog.csdn.net/seanyang_/article/details/133752886