课程名称:课程版本(301)+ 3.7.2 The lifecycle of a SQL and relevant metrics(TiDB 的 SQL 的生命周期和关键监控指标)
学习时长:
20分钟
课程收获:
掌握 tidb 和 tikv 中 SQL 处理的过程,及相关关键的监控指标
课程内容:
上图描述 TIDB中 SQL 的流转过程及流向
- 处理 SQL 之前,获取token
- 事务开始之前,获取 TSO 时间戳
- 进入到解析环节,由 Parse 解析为 AST tree ,进行预处理,逻辑优化和物理优化
- 进入到执行环节,根据物理计划调度执行
- 获取TSO,在提交事务,事务全部完成
两种特殊场景
- Prepared Statement
- 进入到逻辑优化环节,跳过Parse,预处理环节
- Prepared Plan Cache
- 进入到执行环节
监控指标
Get token
- token 可以限制 SQL 并发数
- 可以更新配置信息,来调整 token limit 参数
- Grafana 可以监控 Get Token 的延迟信息
Get TSO
- 异步获取 PD 的时间戳
- Dashboard可以获取到 SQL执行状态和慢查询
- Grafana 可以监控两个关键参数
- PD TSO Wait Duration
- PD TSO RPC Druation
Parse
- Dashboard可以获取到 SQL执行状态和慢查询
- Grafana Parse Duration
Compile
- 预处理 和 优化处理
- Dashboard可以获取到 SQL执行状态和慢查询
- Grafana Compile Duration
Prepared Statements
- 节省Parse 及预处理的开销
- Granfa Prepare Statement Count
Prepared Plan cache
- 节省优化的开销
- Granfa Plan Cache Hits
执行环节
- Execution Duration 获取整体执行的耗时
- Expensive Executors OPS 复杂算子耗时
- KV Request
- kv request duration 99
- ticlient region Error ops
- lock resolve ops
DistSql
DistSql 发动 kv 请求和获取 kv 结果
- distSql Duration 可以获取 kv 延迟的情况
- 请求推送都是并发级别的
- 来源于系统变量 tidb_distsql_scan_concurrency
- Scan keys
- Dashboard可以获取到 SQL执行状态和慢查询
- Grafana Scan keys
- Comprocessor & Get & Batch Get
- Kv request OPS
Transacation
-
kv Transaction duration 事务整体耗时
-
local latch
- tidb 在提交事务之前,对事务排序用的锁
- 默认锁是关闭的,发生冲突是开启
- Dashboard可以获取到 SQL执行状态和慢查询
- Grafana local latch wait time
-
Transaction retry
-
部分错误,尝试写冲突等等
-
Dashboard可以获取到 SQL执行状态和慢查询
-
Grafana Transaction Retry Num
-
Tikv Sql 处理过程及流向
读和写的过程不一样,需要根据场景进行分析
kv request
- gRPC Message Duration 反应了 kv 请求的延时情况
- kv_get / kv_batch_get / coprocessor
- kv Duration in tidb = gRPC Message Duration + network RTT
transaction
- Prewrite & commit
- Resolve Lock
Raft Store
- Raft propose
- propose wait duration
- apply wait duration
- Raft IO
- Append log duration
- Apply log duration
- Commit log duration
Coprocessor
- Execution Time
- Wait Time
RocksDB
- read
- get / seek duration
- memtable hit
- block cache hit
- SST read druation
- write
- write duration
- compaction
- compacation operations
- compacation duration
学习过程中遇到的问题或延伸思考:
- 问题 1:
- 问题 2:
- 延伸思考 1:
- 延伸思考 2: