延迟
应用程序会向 MySQL 发起 SELECT、UPDATE 等操作,处理这些请求花费了多久,是非常关键的,甚至我们还想知道具体是哪个 SQL 最慢,这样就可以有针对性地调优。我们应该如何采集这些延迟数据呢?典型的方法有三种。
- 在客户端埋点。即上层业务程序在请求 MySQL 的时候,记录一下每个 SQL 的请求耗时,把这些数据统一推给监控系统,监控系统就可以计算出平均延迟、95 分位、99 分位的延迟数据了。不过因为要埋点,对业务代码有一定侵入性。
- Slow queries。MySQL 提供了慢查询数量的统计指标
- 通过 performance schema 和 sys schema 拿到统计数据。比如 performance schema 的 events_statements_summary_by_digest 表,这个表捕获了很多关键信息,比如延迟、错误量、查询量。
流量
流量方面的指标,一般会统计写数量(Com_insert + Com_update + Com_delete)、读数量(Com_select)、语句总量(Questions)。
此文章为11月Day22学习笔记,内容来源于极客时间《运维监控系统实战笔记》,强烈推荐该课程