Skip to content

Commit

Permalink
tikv: add new config for auto adjust read pool thread count (#11320)
Browse files Browse the repository at this point in the history
  • Loading branch information
glorv authored Sep 19, 2022
1 parent d6ca805 commit 6bcaebf
Show file tree
Hide file tree
Showing 3 changed files with 8 additions and 0 deletions.
1 change: 1 addition & 0 deletions dynamic-config.md
Original file line number Diff line number Diff line change
Expand Up @@ -156,6 +156,7 @@ show warnings;
| raftstore.apply-max-batch-size | Raft 状态机由 BatchSystem 批量执行数据写入请求,该配置项指定每批可执行请求的最多 Raft 状态机个数。 |
| raftstore.store-max-batch-size | Raft 状态机由 BatchSystem 批量执行把日志落盘至磁盘的请求,该配置项指定每批可执行请求的最多 Raft 状态机个数。 |
| readpool.unified.max-thread-count | 统一处理读请求的线程池最多的线程数量,即 UnifyReadPool 线程池大小 |
| readpool.unified.auto-adjust-pool-size | 是否开启自适应调整 UnifyReadPool 的大小 |
| coprocessor.split-region-on-table | 开启按 table 分裂 Region 的开关 |
| coprocessor.batch-split-limit | 批量分裂 Region 的阈值 |
| coprocessor.region-max-size | Region 容量空间的最大值 |
Expand Down
5 changes: 5 additions & 0 deletions tikv-configuration-file.md
Original file line number Diff line number Diff line change
Expand Up @@ -247,6 +247,11 @@ TiKV 配置文件比命令行参数支持更多的选项。你可以在 [etc/con
+ 默认值:2000
+ 最小值:2

### `auto-adjust-pool-size` <span class="version-mark">从 v6.3.0 版本开始引入</span>

+ 是否开启自动调整线程池的大小。开启此配置可以基于当前的 CPU 使用情况,自动调整统一处理读请求的线程池 (UnifyReadPool) 的大小,优化 TiKV 的读性能。目前线程池自动调整的范围为:`[max-thread-count, MAX(4, CPU)]`(上限与 [`max-thread-count`](#max-thread-count) 可设置的最大值相同)。
+ 默认值:false

## readpool.storage

存储线程池相关的配置项。
Expand Down
2 changes: 2 additions & 0 deletions tune-tikv-thread-performance.md
Original file line number Diff line number Diff line change
Expand Up @@ -63,6 +63,8 @@ TiKV 的读取请求分为两类:

通常建议根据业务负载特性调整其 CPU 使用率在线程池大小的 60%~90% 之间(如果用户 Grafana 上 TiKV-Details.Thread CPU.Unified read pool CPU 的峰值不超过 800%,那么建议用户将 `readpool.unified.max-thread-count` 设置为 10,过多的线程数会造成更频繁的线程切换,并且抢占其他线程池的资源)。

TiKV 从 v6.3.0 开始支持根据统一读线程池 (UnifyReadPool) 的 CPU 利用率自动动态调整线程池的线程数量,可以通过配置 [`readpool.unified.auto-adjust-pool-size`](/tikv-configuration-file.md#auto-adjust-pool-size-从-v630-版本开始引入) 开启此功能。对于重读并且峰值 CPU 利用率超过 80% 的集群,建议开启此配置。

* RocksDB 线程池是 RocksDB 进行 Compact 和 Flush 任务的线程池,通常不需要配置。

* 如果机器 CPU 核数较少,可将 `rocksdb.max-background-jobs``raftdb.max-background-jobs` 同时设置为 4。
Expand Down

0 comments on commit 6bcaebf

Please sign in to comment.