资源管控 (Resource Control) 监控指标详解
使用 TiUP 部署 TiDB 集群时,可以一键部署监控系统 (Prometheus & Grafana)。监控架构请参见 TiDB 监控框架概述。
目前 Grafana Dashboard 整体分为 PD、TiDB、TiKV、Node_exporter、Overview、Performance_overview 等。
如果你的集群配置了 Resource Control ,通过观察 Resource Control 面板上的 Metrics,你可以了解当前集群整体的资源消耗状态。
TiDB 使用令牌桶算法 做流控,正如资源管控实现机制 (RFC: Global Resource Control in TiDB) 中所描述:一个 TiDB 节点可能存在多个 Resource Group(资源组),将在 PD 端的 GAC(Global Admission Control)进行流控。每个 TiDB 节点中的本地令牌桶(Local Token Buckets)将定期(默认 5 秒)与 PD 端的 GAC 进行通信,以重新配置本地令牌。其中的本地令牌桶(Local Token Buckets)具体实现为 Resource Controller Client。
以下为 Resource Control 关键监控指标的说明。
Request Unit 相关指标
- RU:以 Resource Group(资源组)为单位进行实时统计的 Request Unit (RU) 消耗信息。
total
为当前所有 Resource Group 消耗的 Request Unit 之和。每个 Resource Group 的 Request Unit 消耗等于其读消耗 (Read Request Unit) 和写消耗 (Write Request Unit) 之和。 - RU Per Query:平均每个 SQL 语句消耗的 Request Unit 数量。计算方法是将前述 Request Unit 监控指标除以当前每秒执行的 SQL 语句数量。
- RRU:以 Resource Group 为单位进行实时统计的读请求 Read Request Unit 消耗信息。
total
为当前所有 Resource Group 消耗的 Read Request Unit 之和。 - RRU Per Query:平均每个 SQL 语句消耗的 Read Request Unit 数量。计算方法是将前述 Read Request Unit 监控指标除以当前每秒执行的 SQL 语句数量。
- WRU:以 Resource Group 为单位进行实时统计的写请求 Write Request Unit 消耗信息。
total
为当前所有 Resource Group 消耗的 Write Request Unit 之和。 - WRU Per Query:平均每个 SQL 语句消耗的 Write Request Unit 数量。计算方法是将前述 Write Request Unit 监控指标除以当前每秒执行的 SQL 语句数量。
Resource 相关指标
- KV Request Count:以 Resource Group(资源组)为单位进行实时统计的 KV 请求数量,区分了读和写两种类型。
total
为当前所有 Resource Group 涉及的 KV 请求数量之和。 - KV Request Count Per Query:平均每个 SQL 语句涉及的读写 KV 请求数量。计算方法是将前述 KV Request Count 监控指标除以当前每秒执行的 SQL 语句数量。
- Bytes Read:以 Resource Group 为单位进行实时统计的读取数据量。
total
为当前所有 Resource Group 读取数据量之和。 - Bytes Read Per Query:平均每个 SQL 语句的读取数据量。将前述 Bytes Read 监控指标除以当前每秒执行的 SQL 语句数量。
- Bytes Written:以 Resource Group 为单位进行实时统计的写入数据量。
total
为当前所有 Resource Group 写入数据量之和。 - Bytes Written Per Query:平均每个 SQL 语句的写入数据量。计算方法是将前述 Bytes Written 监控指标除以当前每秒执行的 SQL 语句数量。
- KV CPU Time:以 Resource Group 为单位进行实时统计的 KV 层 CPU 时间消耗。
total
为当前所有 Resource Group 消耗 KV 层 CPU 时间之和。 - SQL CPU Time:以 Resource Group 为单位进行实时统计的 SQL 层 CPU 时间消耗。
total
为当前所有 Resource Group 消耗 SQL 层 CPU 时间之和。
Resource Controller Client 相关指标
- Active Resource Groups:实时统计各个 Resource Controller Client 的 Resource Groups 数量。
- Total KV Request Count:以 Resource Group 为单位,实时统计各个 Resource Controller Client 的 KV 请求数量。
total
为 Resource Controller Client 下 KV 请求数量之和。 - Failed KV Request Count:以 Resource Group 为单位,实时统计各个 Resource Controller Client 的 KV 失败请求数量。
total
为 Resource Controller Client 下 KV 失败请求数量之和。 - Successful KV Request Count:以 Resource Group 为单位,实时统计各个 Resource Controller Client 的 KV 成功请求数量。
total
为 Resource Controller Client 下 KV 成功请求数量之和。 - Successful KV Request Wait Duration (99/90):以 Resource Group 为单位,实时统计各个 Resource Controller Client 成功 KV 请求的等待时间(不同百分位)。
- Token Request Handle Duration (999/99):以 Resource Group 为单位,实时统计各个 Resource Controller Client 向 Server 端申请 Token 等待的响应时间(不同百分位)。
- Token Request Count:以 Resource Group 为单位,实时统计各个 Resource Controller Client 向 Server 端申请 Token 的次数。
successful
和failed
分别为 Resource Controller Client 下申请 Token 成功和失败数量之和。