当前位置: 首页 > news >正文

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

监控设计步骤

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

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

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

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

监控技术图谱

架构图

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

需要监控的有:

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

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

总结

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

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

http://www.lryc.cn/news/187866.html

相关文章:

  • 大数据List去重
  • CentOS8.2重启网络
  • 2023年【G1工业锅炉司炉】考试题及G1工业锅炉司炉模拟考试
  • 观察者模式 行为型设计模式之七
  • 数据结构与算法之堆: Leetcode 451. 根据字符出现频率排序 (Typescript版)
  • 吃透底层:从路由到前缀树
  • SparkSQL外部数据源
  • 林沛满-TCP 是如何避免被发送方分片的?
  • Java中的枚举是什么?
  • java学习--day24(单例模式序列化Lambda表达式)
  • 从0开始学go第六天
  • unity设计模式——代理模式
  • SpringBoot 如何使用 Grafana 进行可视化监控
  • 【Codeforces】 CF1762E Tree Sum
  • 用《斗破苍穹》的视角打开C#委托2 委托链 / 泛型委托 / GetInvocationList
  • 唐老师讲电赛
  • [ICCV-23] DeformToon3D: Deformable Neural Radiance Fields for 3D Toonification
  • 配置Hive使用Spark执行引擎
  • 基于FPGA的视频接口之千兆网口(五应用)
  • 车载开发所学内容,有哪些?程序员的转岗位需求
  • VSCode Intellij IDEA CE 数据库连接
  • 直流无刷电机开发应用
  • c 语言基础题目:PTA L1-030 一帮一
  • 网工内推 | base郑州,上市公司,最高15薪,五险一金全额缴
  • 求后缀表达式的值
  • 【FISCO-BCOS】十七、角色的权限控制
  • vue怎样封装接口
  • Typescript 笔记:函数
  • Axios 封装
  • CocosCreator 面试题(一)Javascript的垃圾回收机制