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

监控设计步骤

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

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

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

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

监控技术图谱

性能测试-如何进行监控设计_第1张图片

架构图

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

性能测试-如何进行监控设计_第2张图片

需要监控的有:

1、服务器操作系统

2、nginx

3、redis

4、mysql

5、代码层级

6、测试结果 

7、tomcat

监控设计

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

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

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

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

性能测试-如何进行监控设计_第3张图片

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

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

监控思路

性能测试-如何进行监控设计_第4张图片

全局监控设计

测试前就要有全局监控。

OS层

看linux架构图

常用的计数器

性能测试-如何进行监控设计_第5张图片 DB层(mysql为例)

性能测试-如何进行监控设计_第6张图片

性能测试-如何进行监控设计_第7张图片 定向监控

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

OS 层之定向监控细化 1

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

性能测试-如何进行监控设计_第8张图片

流程图

性能测试-如何进行监控设计_第9张图片 

OS 层之定向监控细化 2

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

性能测试-如何进行监控设计_第10张图片

DB 层之定向监控细化 1

性能测试-如何进行监控设计_第11张图片 DB 层之定向监控细化 2

性能测试-如何进行监控设计_第12张图片

锁数据,平均时间为 754ms 

性能测试-如何进行监控设计_第13张图片

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

监控工具

性能测试-如何进行监控设计_第14张图片

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

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

性能测试-如何进行监控设计_第15张图片

tomcat

性能测试-如何进行监控设计_第16张图片 如果是微服务架构,则需要监控服务状态,cluster,pod,微服务链路。

性能测试-如何进行监控设计_第17张图片

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

总结

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

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

你可能感兴趣的:(性能测试,测试)