Skip to content

Commit

Permalink
Apply suggestions from code review
Browse files Browse the repository at this point in the history
Co-authored-by: Grace Cai <[email protected]>
  • Loading branch information
hfxsd and qiancai authored Feb 17, 2023
1 parent 258597b commit b66d8f5
Show file tree
Hide file tree
Showing 6 changed files with 9 additions and 13 deletions.
4 changes: 2 additions & 2 deletions grafana-resource-control-dashboard.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,13 +9,13 @@ summary: 了解资源管控 (Resource Control) 的 Grafana Dashboard 中所展

目前 Grafana Dashboard 整体分为 PD、TiDB、TiKV、Node_exporter、Overview、Performance_overview 等。

基于 Resource Control 的需求,通过观察 Resource Control 面板上的 Metrics,你可以了解当前集群整体的资源消耗状态。
如果你的集群配置了 [Resource Control](tidb-resource-control.md) ,通过观察 Resource Control 面板上的 Metrics,你可以了解当前集群整体的资源消耗状态。

以下为 **Resource Control** 关键监控指标的说明。

## Request Unit 相关指标

- RU:以 Resource Group 为单位进行实时统计的 [Request Unit (RU)](/tidb-resource-control.md#什么是-request-unit-ru) 消耗信息。`total` 为当前所有 Resource Group 消耗的 Request Unit 之和。每个 Resource Group 的 Request Unit 消耗应当等于其读消耗 (Read Request Unit) 和写消耗 (Write Request Unit) 之和。
- RU:以 Resource Group 为单位进行实时统计的 [Request Unit (RU)](/tidb-resource-control.md#什么是-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 语句数量。
Expand Down
6 changes: 1 addition & 5 deletions information-schema/information-schema-resource-groups.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,8 +11,6 @@ summary: 了解 information_schema 表 `RESOURCE_GROUPS`。
`RESOURCE_GROUPS` 表展示所有资源组 (resource group) 的信息,见[使用资源管控 (Resource Control) 实现资源隔离](/tidb-resource-control.md)

{{< copyable "sql" >}}

```sql
USE information_schema;
DESC resource_groups;
Expand All @@ -31,12 +29,10 @@ DESC resource_groups;

## 示例

{{< copyable "sql" >}}

```sql
mysql> CREATE RESOURCE GROUP rg1 RU_PER_SEC=1000; -- 创建资源组 rg1
Query OK, 0 rows affected (0.34 sec)
mysql> SHOW CREATE RESOURCE GROUP rg1; -- 显示 rg1 资源组的定义
mysql> SHOW CREATE RESOURCE GROUP rg1; -- 显示 rg1 资源组的定义
+----------------+---------------------------------------------+
| Resource_Group | Create Resource Group |
+----------------+---------------------------------------------+
Expand Down
2 changes: 1 addition & 1 deletion sql-statements/sql-statement-alter-resource-group.md
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,7 @@ TiDB 支持以下 `DirectResourceGroupOption`, 其中 [Request Unit (RU)](/tidb-
|---------------|--------------|--------------------------------------|
| `RU_PER_SEC` | 每秒 RU 填充的速度 | `RU_PER_SEC = 500` 表示此资源组每秒回填 500 个 RU |

如果设置了 `BURSTABLE` 属性,对应的资源组允许超出配额使用空余的系统资源
如果设置了 `BURSTABLE` 属性,TiDB 允许对应的资源组超出配额后使用空余的系统资源

> **注意:**
>
Expand Down
2 changes: 1 addition & 1 deletion sql-statements/sql-statement-create-resource-group.md
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,7 @@ TiDB 支持以下 `DirectResourceGroupOption`, 其中 [Request Unit (RU)](/tidb-
|---------------|--------------|--------------------------------------|
| `RU_PER_SEC` | 每秒 RU 填充的速度 | `RU_PER_SEC = 500` 表示此资源组每秒回填 500 个 RU |

如果设置了 `BURSTABLE` 属性,对应的资源组允许超出配额使用系统资源
如果设置了 `BURSTABLE` 属性,TiDB 允许对应的资源组超出配额后使用空余的系统资源

> **注意:**
>
Expand Down
4 changes: 2 additions & 2 deletions tidb-resource-control.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ summary: 介绍如何通过资源管控能力来实现对应用资源消耗的
使用资源管控特性,集群管理员可以定义资源组 (Resource Group),通过资源组限定读写的配额。将用户绑定到某个资源组后,TiDB 层会根据用户所绑定资源组设定的读写配额对用户的读写请求做流控,TiKV 层会根据读写配额映射的优先级来对请求做调度。通过流控和调度这两层控制,你可以实现应用的资源隔离,满足服务质量 (QoS) 要求。

TiDB 资源管控特性提供了两层资源管理能力,包括在 TiDB 层的流控能力和 TiKV 层的优先级调度的能力。两个能力是正交的关系,可以单独或者同时开启,详情请参见[参数组合效果表](#相关参数)
TiDB 资源管控特性提供了两层资源管理能力,包括在 TiDB 层的流控能力和 TiKV 层的优先级调度的能力。两个能力可以单独或者同时开启,详情请参见[参数组合效果表](#相关参数)

- TiDB 流控:TiDB 流控使用[令牌桶算法](https://en.wikipedia.org/wiki/Token_bucket) 做流控;如果桶内令牌数不够,而且资源组没有指定 `BURSTABLE` 特性,属于该资源组的请求会等待令牌桶回填令牌并重试,重试可能会超时失败。
- TiKV 调度:如果开启该特性,TiKV 使用基于资源组 `RU_PER_SEC` 的取值映射成各自资源组读写请求的优先级,基于各自的优先级在存储层使用优先级队列调度处理请求。
Expand Down Expand Up @@ -39,7 +39,7 @@ Request Unit (RU) 是 TiDB 对 CPU、IO 等系统资源的统一抽象的单位,
| 一次读请求的基本开销 | 0.25 RU |
| 一次写请求的基本开销 | 1.5 RU |

基于上表,假设某个资源组消耗的 TiKV 时间是 `c` 毫秒,`r1` 次请求读取了 `r2` KB 数据,`w1` 次写请求,写入 `w2` KB 数据,集群中非 witness TiKV 节点数是 `n`,则该资源组消耗的总 RU 的公式如下:
基于上表,假设某个资源组消耗的 TiKV 时间是 `c` 毫秒,`r1` 次请求读取了 `r2` KB 数据,`w1` 次写请求写入了 `w2` KB 数据,集群中非 witness TiKV 节点数是 `n`,则该资源组消耗的总 RU 的公式如下:

`c`\* 1/3 + (`r1` \* 0.25 + `r2` \* 1/64) + (1.5 \* `w1` + `w2` \* 1 \* `n`)

Expand Down
4 changes: 2 additions & 2 deletions tikv-configuration-file.md
Original file line number Diff line number Diff line change
Expand Up @@ -1880,10 +1880,10 @@ Raft Engine 相关的配置项。

## resource-control

用于资源控制 (Resource Control) 在 TiKV 存储层相关的配置项。
资源控制 (Resource Control) 在 TiKV 存储层相关的配置项。

### `enabled` <span class="version-mark">从 v6.6.0 版本开始引入</span>

+ 是否支持对用户前台的读写请求按照对应的资源组配额做优先级调度。有关 TiDB 资源组和资源管控的信息,请参考 [TiDB 资源管控](/tidb-resource-control.md)
+ 在 TiDB 侧开启 [`tidb_enable_resource_control`](/system-variables.md#tidb_enable_resource_control-从-v660-版本开始引入) 全局变量的情况下,开启这个配置项才有意义。此配置参数开启后,TiKV 对用户前台读写请求的调度会使用优先级队列对排队的请求做调度,调度的优先级和请求所在资源组已经消费的资源量反相关,和对应资源组的配额正相关。
+ 在 TiDB 侧开启 [`tidb_enable_resource_control`](/system-variables.md#tidb_enable_resource_control-从-v660-版本开始引入) 全局变量的情况下,开启这个配置项才有意义。此配置参数开启后,TiKV 会使用优先级队列对排队的用户前台读写请求做调度,调度的优先级和请求所在资源组已经消费的资源量反相关,和对应资源组的配额正相关。
+ 默认值:false(即关闭按照资源组配额调度)

0 comments on commit b66d8f5

Please sign in to comment.