diff --git a/best-practices/massive-regions-best-practices.md b/best-practices/massive-regions-best-practices.md index afc4d6748e26..0301bd8e5677 100644 --- a/best-practices/massive-regions-best-practices.md +++ b/best-practices/massive-regions-best-practices.md @@ -146,7 +146,7 @@ Region 的默认大小为 256 MiB,将其调大可以减少 Region 个数,详 ### 方法七:提高 Raft 通信的的最大连接数 -TiKV 节点间用于 Raft 通信的最大连接数默认为 1,将其调大可以减少因为海量 Region 通信量过大而导致的阻塞情况。具体的配置说明可以参考 [`grpc-raft-conn-num`](/tikv-configuration-file.md#grpc-raft-conn-num)。 +TiKV 节点间用于 Raft 通信的最大连接数可以通过 [`server.grpc-raft-conn-num`](/tikv-configuration-file.md#grpc-raft-conn-num) 配置项调整,将其值调大可以减少因为海量 Region 通信量过大而导致的阻塞情况。 > **注意:** > diff --git a/best-practices/three-nodes-hybrid-deployment.md b/best-practices/three-nodes-hybrid-deployment.md index 44cceebffbb3..a2472ff3f93a 100644 --- a/best-practices/three-nodes-hybrid-deployment.md +++ b/best-practices/three-nodes-hybrid-deployment.md @@ -62,7 +62,7 @@ tikv: #### `server.grpc-concurrency` -该参数默认为 `4`。因为现有部署方案的 CPU 资源有限,实际请求数也不会很多。可以把该参数值调低,后续观察监控面板保持其使用率在 80% 以下即可。 +因为现有部署方案的 CPU 资源有限,实际请求数也不会很多,可以把 [`server.grpc-concurrency`](/tikv-configuration-file.md#grpc-concurrency) 参数值调低,后续观察监控面板保持其使用率在 80% 以下即可。 本次测试最后选择设置该参数值为 `2`,通过 **gRPC poll CPU** 面板观察,利用率正好在 80% 左右。 diff --git a/tikv-configuration-file.md b/tikv-configuration-file.md index 21882da94e5b..e8e33fd6d678 100644 --- a/tikv-configuration-file.md +++ b/tikv-configuration-file.md @@ -153,7 +153,12 @@ TiKV 配置文件比命令行参数支持更多的选项。你可以在 [etc/con ### `grpc-concurrency` + gRPC 工作线程的数量。调整 gRPC 线程池的大小时,请参考 [TiKV 线程池调优](/tune-tikv-thread-performance.md#tikv-线程池调优)。 -+ 默认值:5 ++ 默认值: + + + 从 v8.5.4 和 v9.0.0 起,默认值调整为 `grpc-raft-conn-num * 3 + 2`。其中,`grpc-raft-conn-num` 的值可参考 [`grpc-raft-conn-num`](#grpc-raft-conn-num)。例如,当 CPU 核数为 8 时,`grpc-raft-conn-num` 的默认值为 1,相应地,`grpc-concurrency` 的默认值即为 `1 * 3 + 2 = 5`。 + + + 在 v8.5.3 及之前的版本中,默认值为 5。 + + 最小值:1 ### `grpc-concurrent-stream` @@ -171,7 +176,11 @@ TiKV 配置文件比命令行参数支持更多的选项。你可以在 [etc/con ### `grpc-raft-conn-num` + TiKV 节点之间用于 Raft 通信的连接最大数量。 -+ 默认值:1 ++ 默认值: + + + 从 v8.5.4 和 v9.0.0 起,默认值调整为 `MAX(1, MIN(4, CPU 核数 / 8))`,其中,`MIN(4, CPU 核数 / 8)` 表示当 CPU 核数大于等于 32 时,默认的最大连接数为 4。 + + 在 v8.5.3 及之前的版本中,默认值为 1。 + + 最小值:1 ### `max-grpc-send-msg-len` diff --git a/tune-tikv-memory-performance.md b/tune-tikv-memory-performance.md index 4d5c89476120..74e9b1145089 100644 --- a/tune-tikv-memory-performance.md +++ b/tune-tikv-memory-performance.md @@ -43,7 +43,7 @@ log-level = "info" # gRPC 线程池大小 # grpc-concurrency = 4 # TiKV 每个实例之间的 gRPC 连接数 -# grpc-raft-conn-num = 10 +# grpc-raft-conn-num = 1 # TiDB 过来的大部分读请求都会发送到 TiKV 的 Coprocessor 进行处理,该参数用于设置 # coprocessor 线程的个数,如果业务是读请求比较多,增加 coprocessor 的线程数,但应比系统的 diff --git a/tune-tikv-thread-performance.md b/tune-tikv-thread-performance.md index e0cec7871013..0316e5c311c3 100644 --- a/tune-tikv-thread-performance.md +++ b/tune-tikv-thread-performance.md @@ -34,7 +34,7 @@ TiKV 的读取请求分为两类: ## TiKV 线程池调优 -* gRPC 线程池的大小默认配置 (`server.grpc-concurrency`) 是 5。由于 gRPC 线程池几乎不会有多少计算开销,它主要负责网络 IO、反序列化请求,因此该配置通常不需要调整。 +* 从 v8.5.4 和 v9.0.0 起,gRPC 线程池的默认大小(由 `server.grpc-concurrency` 控制)由固定值 `5` 调整为根据 CPU 核数进行自适应计算,具体计算公式请参考 [`server.grpc-concurrency`](/tikv-configuration-file.md#grpc-concurrency)。由于 gRPC 线程池几乎不会有多少计算开销,它主要负责网络 IO、反序列化请求,因此该配置通常不需要调整。 - 如果部署的机器 CPU 核数特别少(小于等于 8),可以考虑将该配置 (`server.grpc-concurrency`) 设置为 2。 - 如果机器配置很高,并且 TiKV 承担了非常大量的读写请求,观察到 Grafana 上的监控 Thread CPU 的 gRPC poll CPU 的数值超过了 server.grpc-concurrency 大小的 80%,那么可以考虑适当调大 `server.grpc-concurrency` 以控制该线程池使用率在 80% 以下(即 Grafana 上的指标低于 `80% * server.grpc-concurrency` 的值)。