@@ -21,99 +21,119 @@ summary: 介绍如何通过 TiDB Dashboard 监控页面查看 Performance Overvi
21
21
22
22
Performance Overview 面板按总分结构对 TiDB、TiKV 和 PD 的性能指标进行了编排组织,包含以下三部分内容:
23
23
24
- - 总的概览 :数据库时间和 SQL 执行时间概览。通过颜色优化法,你可以快速识别数据库负载特征和性能瓶颈。
25
- - 资源负载:关键指标和资源利用率,包含数据库 QPS、应用和数据库的连接信息和请求命令类型、数据库内部 TSO 和 KV 请求 OPS、TiDB 和 TiKV 的资源使用概况。
26
- - 自上而下的延迟分解:Query 延迟和连接空闲时间对比、Query 延迟分解、execute 阶段 TSO 请求和 KV 请求的延迟、TiKV 内部写延迟的分解等。
24
+ - ** 总体概览 ** :数据库时间和 SQL 执行时间概览。通过颜色优化法,你可以快速识别数据库负载特征和性能瓶颈。
25
+ - ** 资源负载** :关键指标和资源利用率,包含数据库 QPS、应用和数据库的连接信息和请求命令类型、数据库内部 TSO 和 KV 请求 OPS、TiDB 和 TiKV 的资源使用概况。
26
+ - ** 自上而下的延迟分解** :Query 延迟和连接空闲时间对比、Query 延迟分解、execute 阶段 TSO 请求和 KV 请求的延迟、TiKV 内部写延迟的分解等。
27
27
28
28
以下为 Performance Overview 面板监控说明:
29
29
30
30
### Database Time by SQL Type
31
31
32
- - database time: 每秒的总数据库时间
33
- - sql_type: 每种 SQL 语句每秒消耗的数据库时间
32
+ - ` database time ` : 每秒的总数据库时间
33
+ - ` sql_type ` : 每种 SQL 语句每秒消耗的数据库时间
34
34
35
35
### Database Time by SQL Phase
36
36
37
- - database time: 每秒的总数据库时间
38
- - get token/parse/compile/execute: 4 个 SQL 处理阶段每秒消耗的数据库时间
37
+ - ` database time ` : 每秒的总数据库时间
38
+ - ` get token/parse/compile/execute ` : 4 个 SQL 处理阶段每秒消耗的数据库时间
39
39
40
40
execute 执行阶段为绿色,其他三个阶段偏红色系,如果非绿色的颜色占比明显,意味着在执行阶段之外数据库消耗了过多时间,需要进一步分析根源。
41
41
42
42
### SQL Execute Time Overview
43
43
44
- - execute time: execute 阶段每秒消耗的数据库时间
45
- - tso_wait: execute 阶段每秒同步等待 TSO 的时间
46
- - kv request type: execute 阶段每秒等待每种 KV 请求类型的时间,总的 KV request 等待时间可能超过 execute time,因为 KV request 是并发的 。
44
+ - ` execute time ` : execute 阶段每秒消耗的数据库时间
45
+ - ` tso_wait ` : execute 阶段每秒同步等待 TSO 的时间
46
+ - ` kv request type ` : execute 阶段每秒等待每种 KV 请求类型的时间,总的 KV 请求等待时间可能超过 execute time,因为 KV 请求是并发的 。
47
47
48
48
绿色系标识代表常规的写 KV 请求(例如 Prewrite 和 Commit),蓝色系标识代表常规的读 KV 请求,其他色系标识需要注意的问题。例如,悲观锁加锁请求为红色,TSO 等待为深褐色。如果非蓝色系或者非绿色系占比明显,意味着执行阶段存在异常的瓶颈。例如,当发生严重锁冲突时,红色的悲观锁时间会占比明显;当负载中 TSO 等待的消耗时间过长时,深褐色会占比明显。
49
49
50
50
### QPS
51
51
52
- QPS:按 ` SELECT ` 、` INSERT ` 、` UPDATE ` 等类型统计所有 TiDB 实例上每秒执行的 SQL 语句数量
52
+ - ` QPS ` :按 ` SELECT ` 、` INSERT ` 、` UPDATE ` 等类型统计所有 TiDB 实例上每秒执行的 SQL 语句数量
53
53
54
54
### CPS By Type
55
55
56
- CPS By Type:按照类型统计所有 TiDB 实例每秒处理的命令数(Command Per Second)
56
+ - ` CPS By Type ` :按照类型统计所有 TiDB 实例每秒处理的命令数(Command Per Second)
57
57
58
58
### Queries Using Plan Cache OPS
59
59
60
- Queries Using Plan Cache OPS:所有 TiDB 实例每秒使用 Plan Cache 的查询数量
60
+ - ` Queries Using Plan Cache OPS ` :所有 TiDB 实例每秒使用 Plan Cache 的查询数量
61
61
62
62
### KV/TSO Request OPS
63
63
64
- - kv request total: 所有 TiDB 实例每秒总的 KV 请求数量
65
- - kv request by type: 按 ` Get ` 、` Prewrite ` 、 ` Commit ` 等类型统计在所有 TiDB 实例每秒的请求数据
66
- - tso - cmd:所有 TiDB 实例每秒发送的 gRPC 请求的数量,每个 gRPC 请求包含一批 (batch) TSO 请求
67
- - tso - request:所有 TiDB 实例每秒的 TSO 请求数量
64
+ - ` kv request total ` : 所有 TiDB 实例每秒总的 KV 请求数量
65
+ - ` kv request by type ` : 按 ` Get ` 、` Prewrite ` 、 ` Commit ` 等类型统计在所有 TiDB 实例每秒的请求数据
66
+ - ` tso - cmd ` :所有 TiDB 实例每秒发送的 gRPC 请求的数量,每个 gRPC 请求包含一批 (batch) TSO 请求
67
+ - ` tso - request ` :所有 TiDB 实例每秒的 TSO 请求数量
68
68
69
69
通常 tso - request 除以 tso - cmd 等于 TSO 请求 batch 的平均大小。
70
70
71
71
### Connection Count
72
72
73
- - total:所有 TiDB 的连接数
74
- - active connections:所有 TiDB 总的活跃连接数
75
- - 各个 TiDB 的连接数
73
+ - ` total ` :所有 TiDB 的连接数
74
+ - ` active connections ` :所有 TiDB 总的活跃连接数
75
+ - 各个 TiDB 实例的连接数
76
76
77
- ### TiDB CPU
77
+ ### TiDB CPU/Memory
78
78
79
- - avg:所有 TiDB 实例平均 CPU 利用率
80
- - delta:所有 TiDB 实例中最大 CPU 利用率减去所有 TiDB 实例中最小 CPU 利用率
81
- - max:所有 TiDB 实例中最大 CPU 利用率
79
+ - ` CPU-Avg ` :所有 TiDB 实例的平均 CPU 利用率
80
+ - ` CPU-Delta ` :所有 TiDB 实例中最大 CPU 利用率减去所有 TiDB 实例中最小 CPU 利用率
81
+ - ` CPU-Max ` :所有 TiDB 实例中最大 CPU 利用率
82
+ - ` CPU-Quota ` :TiDB 可以使用的 CPU 核数
83
+ - ` Mem-Max ` :所有 TiDB 实例中最大内存利用率
82
84
83
- ### TiKV CPU/IO MBps
85
+ ### TiKV CPU/Memory
84
86
85
- - CPU-Avg:所有 TiKV 实例平均 CPU 利用率
86
- - CPU-Delta:所有 TiKV 实例中最大 CPU 利用率减去所有 TiKV 实例中最小 CPU 利用率
87
- - CPU-MAX:所有 TiKV 实例中最大 CPU 利用率
88
- - IO-Avg:所有 TiKV 实例平均 MBps
89
- - IO-Delta:所有 TiKV 实例中最大 MBps 减去所有 TiKV 实例中最小 MBps
90
- - IO-MAX:所有 TiKV 实例中最大 MBps
87
+ - ` CPU-Avg ` :所有 TiKV 实例的平均 CPU 利用率
88
+ - ` CPU-Delta ` :所有 TiKV 实例中最大 CPU 利用率减去所有 TiKV 实例中最小 CPU 利用率
89
+ - ` CPU-Max ` :所有 TiKV 实例中最大 CPU 利用率
90
+ - ` CPU-Quota ` :TiKV 可以使用的 CPU 核数
91
+ - ` Mem-Max ` :所有 TiKV 实例中最大内存利用率
92
+
93
+ ### PD CPU/Memory
94
+
95
+ - ` CPU-Max ` :所有 PD 实例中最大 CPU 利用率
96
+ - ` CPU-Quota ` :PD 可以使用的 CPU 核数
97
+ - ` Mem-Max ` :所有 PD 实例中最大内存利用率
98
+
99
+ ### Read Traffic
100
+
101
+ - ` TiDB -> Client ` :从 TiDB 到客户端的出站流量统计
102
+ - ` Rocksdb -> TiKV ` :TiKV 在存储层读操作过程中从 RocksDB 读取的数据流量
103
+
104
+ ### Write Traffic
105
+
106
+ - ` Client -> TiDB ` :从客户端到 TiDB 的入站流量统计
107
+ - ` TiDB -> TiKV: general ` :前台事务从 TiDB 写入到 TiKV 的速率
108
+ - ` TiDB -> TiKV: internal ` :后台事务从 TiDB 写入到 TiKV 的速率
109
+ - ` TiKV -> Rocksdb ` :从 TiKV 写入到 RocksDB 的流量
110
+ - ` RocksDB Compaction ` :RocksDB compaction 操作产生的总读写 I/O 流量。
91
111
92
112
### Duration
93
113
94
- - Duration:执行时间解释
114
+ - ` Duration ` :执行时间解释
95
115
96
116
- 从客户端网络请求发送到 TiDB,到 TiDB 执行结束后返回给客户端的时间。一般情况下,客户端请求都是以 SQL 语句的形式发送,但也可以包含 ` COM_PING ` 、` COM_SLEEP ` 、` COM_STMT_FETCH ` 、` COM_SEND_LONG_DATA ` 之类的命令执行时间。
97
117
- 由于 TiDB 支持 Multi-Query,因此,客户端可以一次性发送多条 SQL 语句,如 ` select 1; select 1; select 1; ` 。此时的执行时间是所有 SQL 语句执行完成的总时间。
98
118
99
- - avg:所有请求命令的平均执行时间
100
- - 99: 所有请求命令的 P99 执行时间
101
- - avg by type:按 ` SELECT ` 、` INSERT ` 、` UPDATE ` 类型统计所有 TiDB 实例上所有请求命令的平均执行时间
119
+ - ` avg ` :所有请求命令的平均执行时间
120
+ - ` 99 ` : 所有请求命令的 P99 执行时间
121
+ - ` avg by type ` :按 ` SELECT ` 、` INSERT ` 、` UPDATE ` 类型统计所有 TiDB 实例上所有请求命令的平均执行时间
102
122
103
123
### Connection Idle Duration
104
124
105
125
Connection Idle Duration 指空闲连接的持续时间。
106
126
107
- - avg-in-txn:处于事务中,空闲连接的平均持续时间
108
- - avg-not-in-txn:没有处于事务中,空闲连接的平均持续时间
109
- - 99-in-txn:处于事务中,空闲连接的 P99 持续时间
110
- - 99-not-in-txn:没有处于事务中,空闲连接的 P99 持续时间
127
+ - ` avg-in-txn ` :处于事务中,空闲连接的平均持续时间
128
+ - ` avg-not-in-txn ` :没有处于事务中,空闲连接的平均持续时间
129
+ - ` 99-in-txn ` :处于事务中,空闲连接的 P99 持续时间
130
+ - ` 99-not-in-txn ` :没有处于事务中,空闲连接的 P99 持续时间
111
131
112
132
### Parse Duration、Compile Duration 和 Execute Duration
113
133
114
- - Parse Duration:SQL 语句解析耗时统计
115
- - Compile Duration:将解析后的 SQL AST 编译成执行计划的耗时
116
- - Execution Duration:执行 SQL 语句执行计划耗时
134
+ - ` Parse Duration ` :SQL 语句解析耗时统计
135
+ - ` Compile Duration ` :将解析后的 SQL AST 编译成执行计划的耗时
136
+ - ` Execution Duration ` :执行 SQL 语句执行计划耗时
117
137
118
138
这三个时间指标均包含均所有 TiDB 实例的平均值和 P99 值。
119
139
@@ -127,25 +147,25 @@ Connection Idle Duration 指空闲连接的持续时间。
127
147
128
148
### PD TSO Wait/RPC Duration
129
149
130
- - wait - avg:所有 TiDB 实例等待从 PD 返回 TSO 的平均时间
131
- - rpc - avg:所有 TiDB 实例从向 PD 发送获取 TSO 的请求到接收到 TSO 的平均耗时
132
- - wait - 99:所有 TiDB 实例等待从 PD 返回 TSO 的 P99 时间
133
- - rpc - 99:所有 TiDB 实例从向 PD 发送获取 TSO 的请求到接收到 TSO 的 P99 耗时
150
+ - ` wait - avg ` :所有 TiDB 实例等待从 PD 返回 TSO 的平均时间
151
+ - ` rpc - avg ` :所有 TiDB 实例从向 PD 发送获取 TSO 的请求到接收到 TSO 的平均耗时
152
+ - ` wait - 99 ` :所有 TiDB 实例等待从 PD 返回 TSO 的 P99 时间
153
+ - ` rpc - 99 ` :所有 TiDB 实例从向 PD 发送获取 TSO 的请求到接收到 TSO 的 P99 耗时
134
154
135
155
### Storage Async Write Duration、Store Duration 和 Apply Duration
136
156
137
- - Storage Async Write Duration:异步写所花费的时间
138
- - Store Duration:异步写 Store 步骤所花费的时间
139
- - Apply Duration:异步写 Apply 步骤所花费的时间
157
+ - ` Storage Async Write Duration ` :异步写所花费的时间
158
+ - ` Store Duration ` :异步写入过程中,在存储循环 (store loop) 中所花费的时间
159
+ - ` Apply Duration ` :异步写入过程中,在应用循环 (apply loop) 中所花费的时间
140
160
141
161
这三个时间指标都包含所有 TiKV 实例的平均值和 P99 值
142
162
143
163
平均 Storage async write duration = 平均 Store Duration + 平均 Apply Duration
144
164
145
165
### Append Log Duration、Commit Log Duration 和 Apply Log Duration
146
166
147
- - Append Log Duration:Raft append 日志所花费的时间
148
- - Commit Log Duration:Raft commit 日志所花费的时间
149
- - Apply Log Duration:Raft apply 日志所花费的时间
167
+ - ` Append Log Duration ` :Raft append 日志所花费的时间
168
+ - ` Commit Log Duration ` :Raft commit 日志所花费的时间
169
+ - ` Apply Log Duration ` :Raft apply 日志所花费的时间
150
170
151
171
这三个时间指标均包含所有 TiKV 实例的平均值和 P99 值。
0 commit comments