Skip to content

Commit

Permalink
add background util limit
Browse files Browse the repository at this point in the history
  • Loading branch information
glorv committed Sep 14, 2024
1 parent 109e4cb commit 25bde68
Show file tree
Hide file tree
Showing 3 changed files with 18 additions and 7 deletions.
1 change: 1 addition & 0 deletions dynamic-config.md
Original file line number Diff line number Diff line change
Expand Up @@ -162,6 +162,7 @@ show warnings;
| readpool.unified.max-thread-count | 统一处理读请求的线程池最多的线程数量,即 UnifyReadPool 线程池大小 |
| readpool.unified.max-tasks-per-worker | 统一处理读请求的线程池中单个线程允许积压的最大任务数量,超出后会返回 Server Is Busy。 |
| readpool.unified.auto-adjust-pool-size | 是否开启自适应调整 UnifyReadPool 的大小 |
| resource-control.priority-ctl-strategy | 配置低优先级任务的管控策略。 |
| coprocessor.split-region-on-table | 开启按 table 分裂 Region 的开关 |
| coprocessor.batch-split-limit | 批量分裂 Region 的阈值 |
| coprocessor.region-max-size | Region 容量空间的最大值 |
Expand Down
15 changes: 8 additions & 7 deletions tidb-resource-control.md
Original file line number Diff line number Diff line change
Expand Up @@ -361,6 +361,7 @@ Runaway Query 是指执行时间或消耗资源超出预期的查询(仅指 `S
#### `BACKGROUND` 参数说明

`TASK_TYPES`:设置需要作为后台任务管理的任务类型,多个任务类型以 `,` 分隔。
`UTILIZATION_LIMIT`: 设置每个 TiKV 节点后台任务最大可以使用的资源百分比(0-100)。TiKV 默认基于节点总的资源配额和当前前台任务的使用的总资源计算后台任务可使用的资源配额,如果设置此配置,则实际分配给后台任务的资源配置不会超过此配置的比例。

目前 TiDB 支持如下几种后台任务的类型:

Expand All @@ -378,10 +379,10 @@ Runaway Query 是指执行时间或消耗资源超出预期的查询(仅指 `S

#### 示例

1. 修改 `default` 资源组,将 `br``ddl` 标记为后台任务。
1. 修改 `default` 资源组,将 `br``ddl` 标记为后台任务,并配置后台任务最多可使用 TiKV 节点总资源的 30%

```sql
ALTER RESOURCE GROUP `default` BACKGROUND=(TASK_TYPES='br,ddl');
ALTER RESOURCE GROUP `default` BACKGROUND=(TASK_TYPES='br,ddl', UTILIZATION_LIMIT=30);
```

2. 修改 `default` 资源组,将后台任务的类型还原为默认值。
Expand All @@ -405,11 +406,11 @@ Runaway Query 是指执行时间或消耗资源超出预期的查询(仅指 `S
输出结果如下:

```
+---------+------------+----------+-----------+-------------+---------------------+
| NAME | RU_PER_SEC | PRIORITY | BURSTABLE | QUERY_LIMIT | BACKGROUND |
+---------+------------+----------+-----------+-------------+---------------------+
| default | UNLIMITED | MEDIUM | YES | NULL | TASK_TYPES='br,ddl' |
+---------+------------+----------+-----------+-------------+---------------------+
+---------+------------+----------+-----------+-------------+-------------------------------------------+
| NAME | RU_PER_SEC | PRIORITY | BURSTABLE | QUERY_LIMIT | BACKGROUND |
+---------+------------+----------+-----------+-------------+-------------------------------------------+
| default | UNLIMITED | MEDIUM | YES | NULL | TASK_TYPES='br,ddl', UTILIZATION_LIMIT=30 |
+---------+------------+----------+-----------+-------------+-------------------------------------------+
```

5. 如果希望将当前会话里的任务显式标记为后台类型,你可以使用 `tidb_request_source_type` 显式指定任务类型,如:
Expand Down
9 changes: 9 additions & 0 deletions tikv-configuration-file.md
Original file line number Diff line number Diff line change
Expand Up @@ -2430,6 +2430,15 @@ Raft Engine 相关的配置项。
+ 在 TiDB 侧开启 [`tidb_enable_resource_control`](/system-variables.md#tidb_enable_resource_control-从-v660-版本开始引入) 全局变量的情况下,开启这个配置项才有意义。此配置参数开启后,TiKV 会使用优先级队列对排队的用户前台读写请求做调度,调度的优先级和请求所在资源组已经消费的资源量反相关,和对应资源组的配额正相关。
+ 默认值:true(即开启按照资源组配额调度)

### `priority-ctl-strategy` <span class="version-mark">从 v8.4.0 版本开始引入</span>

+ 配置低优先级任务的管控策略。TiKV 通过对低优先级的任务添加流量控制来确保优先执行更高优先级的任务。此管控策略用户配置对低优先级任务的流量控制阈值的计算策略。
+ 可选值:
+ `aggressive`。采用此策略,流控策略会优先保证高优先级任务的性能,确保高优先的任务的吞吐和延迟基本不受影响,但低优先级的任务会执行的比较慢。
+ `moderate`。采用此策略,TiKV 会为低优先任务施加较平衡的流控限制,确保低优先级任务能使用更多的系统可用资源,并对高优先级任务有较低影响。
+ `conservative`。采用此策略,流控策略会优先确保系统的资源被充分使用,低优先级任务会尽量使用系统可用的资源,因而对高优先级任务的性能影响更大。
+ 默认值:`moderate`(默认值)。

## split

[Load Base Split](/configure-load-base-split.md) 相关的配置项。
Expand Down

0 comments on commit 25bde68

Please sign in to comment.