From 5741b07f48770b4010f4d52c10134eae1693234f Mon Sep 17 00:00:00 2001
From: okjiang <819421878@qq.com>
Date: Tue, 16 Dec 2025 16:43:34 +0800
Subject: [PATCH 1/4] add doc
Signed-off-by: okjiang <819421878@qq.com>
---
.../pd-scheduling-best-practices.md | 2 ++
pd-control.md | 21 ++++++++++++++++++-
tikv-configuration-file.md | 7 +++++++
3 files changed, 29 insertions(+), 1 deletion(-)
diff --git a/best-practices/pd-scheduling-best-practices.md b/best-practices/pd-scheduling-best-practices.md
index 2b9681d151c0..ca35ff68eec6 100644
--- a/best-practices/pd-scheduling-best-practices.md
+++ b/best-practices/pd-scheduling-best-practices.md
@@ -299,6 +299,8 @@ Region Merge 速度慢也很有可能是受到 limit 配置的限制(`merge-sc
自 v5.2.0 起,TiKV 引入了慢节点检测机制。通过对 TiKV 中的请求进行采样,计算出一个范围在 1~100 的分数。当分数大于等于 80 时,该 TiKV 节点会被设置为 slow 状态。可以通过添加 [`evict-slow-store-scheduler`](/pd-control.md#scheduler-show--add--remove--pause--resume--config--describe) 来针对慢节点进行对应的检测和调度。当检测到有且只有一个 TiKV 节点为慢节点,并且该 TiKV 的 slow score 到达限定值(默认 80)时,将节点上的 Leader 驱逐(其作用类似于 `evict-leader-scheduler`)。
+自 v8.5.5 起,TiKV 引入了网络的慢节点检测机制。与磁盘一样,通过在 TiKV 之间进行网络探测,计算出分数,再由分数来判断节点的网络师傅出现问题。可以通过 [`enable-network-slow-store`](/pd-control.md#scheduler-config-evict-slow-store-scheduler) 来开启。
+
> **注意:**
>
> **Leader 驱逐**是通过 PD 向 TiKV 慢节点发送调度请求,然后 TiKV 按时间顺序执行收到的调度请求来完成的。受 **I/O 慢**或者其他因素的影响,慢节点可能存在请求堆积的情况,使得部分 Leader 需要等待滞后的请求处理完后才能处理 **Leader 驱逐**的请求,造成 **Leader 驱逐**的整体时间过长。因此,在开启 `evict-slow-store-scheduler` 时,建议同步配置[`store-io-pool-size`](/tikv-configuration-file.md#store-io-pool-size-从-v530-版本开始引入) 以缓解该情况。
\ No newline at end of file
diff --git a/pd-control.md b/pd-control.md
index a87acc586f1e..eaca51c9c850 100644
--- a/pd-control.md
+++ b/pd-control.md
@@ -1158,7 +1158,7 @@ pd-ctl resource-manager config controller set ltb-max-wait-duration 30m
>> scheduler config evict-leader-scheduler // v4.0.0 起,展示该调度器具体在哪些 store 上
>> scheduler config evict-leader-scheduler add-store 2 // 为 store 2 添加 leader 驱逐调度
>> scheduler config evict-leader-scheduler delete-store 2 // 为 store 2 移除 leader 驱逐调度
->> scheduler add evict-slow-store-scheduler // 当有且仅有一个 slow store 时将该 store 上的所有 Region 的 leader 驱逐出去
+>> scheduler add evict-slow-store-scheduler // 自动检测磁盘或网络慢节点,并在满足条件时将该 store 上的所有 Region leader 驱逐出去
>> scheduler remove grant-leader-scheduler-1 // 把对应的调度器删掉,`-1` 对应 store ID
>> scheduler pause balance-region-scheduler 10 // 暂停运行 balance-region 调度器 10 秒
>> scheduler pause all 10 // 暂停运行所有的调度器 10 秒
@@ -1182,6 +1182,25 @@ pd-ctl resource-manager config controller set ltb-max-wait-duration 30m
- `pending`:表示当前调度器无法产生调度。`pending` 状态的调度器,会返回一个概览信息,来帮助用户诊断。概览信息包含了 store 的一些状态信息,解释了它们为什么不能被选中进行调度。
- `normal`:表示当前调度器无需进行调度。
+### `scheduler config evict-slow-store-scheduler`
+
+`evict-slow-store-scheduler` 用于在 TiKV 节点出现磁盘 I/O 或网络抖动时,阻断 PD 向异常节点调度 leader,并在必要时主动驱逐 leader。TiKV 会在 store 心跳中同时上报 `SlowScore`(磁盘)与 `NetworkSlowScore`(网络),分值范围均为 1~100,数值越大代表该节点越可能异常。
+
+你可以通过 `recovery-duration` 来控制慢节点恢复正常的时间。
+
+示例:
+
+```bash
+>> scheduler config evict-slow-store-scheduler // 查看当前配置
+{
+ "recovery-duration": "1800" // 30 分钟
+}
+>> scheduler config evict-slow-store-scheduler set recovery-duration 600
+```
+
+当你需要开启网络的慢节点探测时,可以通过 `scheduler config evict-slow-store-scheduler set enable-network-slow-store true` 来开启。
+当你需要直接关闭 tikv 内部的网络探测时,可将 TiKV 侧 [`raftstore.inspect-network-interval`](/tikv-configuration-file.md#inspect-network-interval) 设置为 `0`。
+
### `scheduler config balance-leader-scheduler`
用于查看和控制 `balance-leader-scheduler` 策略。
diff --git a/tikv-configuration-file.md b/tikv-configuration-file.md
index 21882da94e5b..408026c12230 100644
--- a/tikv-configuration-file.md
+++ b/tikv-configuration-file.md
@@ -1105,6 +1105,13 @@ raftstore 相关的配置项。
+ 默认值:100ms
+ 最小值:1ms
+### `inspect-network-interval`
+
++ 控制 TiKV HealthChecker 主动向 PD 以及其他 TiKV 节点发起网络探测的周期,用于计算 `NetworkSlowScore` 并向 PD 上报慢节点的网络状态。
++ 设置为 `0` 表示关闭网络探测。数值越小,采样频率越高,能够更快放大网络抖动,但也会消耗更多网络与 CPU 资源。
++ 默认值:100ms
++ 取值范围:0 或 `[10ms, +∞)`
+
### `raft-write-size-limit` 从 v5.3.0 版本开始引入
+ 触发 Raft 数据写入的阈值。当数据大小超过该配置项值,数据会被写入磁盘。当 `store-io-pool-size` 的值为 `0` 时,该配置项不生效。
From 44bfca2475caf0df8951f929f403a2f8f72c400f Mon Sep 17 00:00:00 2001
From: okjiang <819421878@qq.com>
Date: Wed, 17 Dec 2025 11:16:17 +0800
Subject: [PATCH 2/4] move place
Signed-off-by: okjiang <819421878@qq.com>
---
tikv-configuration-file.md | 14 +++++++-------
1 file changed, 7 insertions(+), 7 deletions(-)
diff --git a/tikv-configuration-file.md b/tikv-configuration-file.md
index 408026c12230..a648154ca1d9 100644
--- a/tikv-configuration-file.md
+++ b/tikv-configuration-file.md
@@ -283,6 +283,13 @@ TiKV 配置文件比命令行参数支持更多的选项。你可以在 [etc/con
+ 设置服务与转发请求的连接池大小。设置过小会影响请求的延迟和负载均衡。
+ 默认值:4
+### `inspect-network-interval` 从 v8.5.5 和 v9.0.0 版本开始引入
+
++ 控制 TiKV HealthChecker 主动向 PD 以及其他 TiKV 节点发起网络探测的周期,用于计算 `NetworkSlowScore` 并向 PD 上报慢节点的网络状态。
++ 设置为 `0` 表示关闭网络探测。数值越小,采样频率越高,能够更快放大网络抖动,但也会消耗更多网络与 CPU 资源。
++ 默认值:100ms
++ 取值范围:0 或 `[10ms, +∞)`
+
## readpool.unified
统一处理读请求的线程池相关的配置项。该线程池自 4.0 版本起取代原有的 storage 和 coprocessor 线程池。
@@ -1105,13 +1112,6 @@ raftstore 相关的配置项。
+ 默认值:100ms
+ 最小值:1ms
-### `inspect-network-interval`
-
-+ 控制 TiKV HealthChecker 主动向 PD 以及其他 TiKV 节点发起网络探测的周期,用于计算 `NetworkSlowScore` 并向 PD 上报慢节点的网络状态。
-+ 设置为 `0` 表示关闭网络探测。数值越小,采样频率越高,能够更快放大网络抖动,但也会消耗更多网络与 CPU 资源。
-+ 默认值:100ms
-+ 取值范围:0 或 `[10ms, +∞)`
-
### `raft-write-size-limit` 从 v5.3.0 版本开始引入
+ 触发 Raft 数据写入的阈值。当数据大小超过该配置项值,数据会被写入磁盘。当 `store-io-pool-size` 的值为 `0` 时,该配置项不生效。
From 5ced6dc2806e88789f9caaf58a68ed63376b4bdf Mon Sep 17 00:00:00 2001
From: okJiang <819421878@qq.com>
Date: Wed, 17 Dec 2025 11:18:30 +0800
Subject: [PATCH 3/4] Apply suggestions from code review
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
---
best-practices/pd-scheduling-best-practices.md | 2 +-
pd-control.md | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/best-practices/pd-scheduling-best-practices.md b/best-practices/pd-scheduling-best-practices.md
index ca35ff68eec6..e21b6f4c1ac9 100644
--- a/best-practices/pd-scheduling-best-practices.md
+++ b/best-practices/pd-scheduling-best-practices.md
@@ -299,7 +299,7 @@ Region Merge 速度慢也很有可能是受到 limit 配置的限制(`merge-sc
自 v5.2.0 起,TiKV 引入了慢节点检测机制。通过对 TiKV 中的请求进行采样,计算出一个范围在 1~100 的分数。当分数大于等于 80 时,该 TiKV 节点会被设置为 slow 状态。可以通过添加 [`evict-slow-store-scheduler`](/pd-control.md#scheduler-show--add--remove--pause--resume--config--describe) 来针对慢节点进行对应的检测和调度。当检测到有且只有一个 TiKV 节点为慢节点,并且该 TiKV 的 slow score 到达限定值(默认 80)时,将节点上的 Leader 驱逐(其作用类似于 `evict-leader-scheduler`)。
-自 v8.5.5 起,TiKV 引入了网络的慢节点检测机制。与磁盘一样,通过在 TiKV 之间进行网络探测,计算出分数,再由分数来判断节点的网络师傅出现问题。可以通过 [`enable-network-slow-store`](/pd-control.md#scheduler-config-evict-slow-store-scheduler) 来开启。
+自 v8.5.5 起,TiKV 引入了网络的慢节点检测机制。与磁盘慢节点检测类似,通过在 TiKV 节点之间进行网络探测并计算分数,来判断节点的网络是否出现异常。可以通过 [`enable-network-slow-store`](/pd-control.md#scheduler-config-evict-slow-store-scheduler) 来开启。
> **注意:**
>
diff --git a/pd-control.md b/pd-control.md
index eaca51c9c850..cb3612de2f6e 100644
--- a/pd-control.md
+++ b/pd-control.md
@@ -1198,7 +1198,7 @@ pd-ctl resource-manager config controller set ltb-max-wait-duration 30m
>> scheduler config evict-slow-store-scheduler set recovery-duration 600
```
-当你需要开启网络的慢节点探测时,可以通过 `scheduler config evict-slow-store-scheduler set enable-network-slow-store true` 来开启。
+要启用网络慢节点探测,你需要同时进行以下配置:首先,通过 `scheduler config evict-slow-store-scheduler set enable-network-slow-store true` 在 PD 侧开启调度器对网络慢节点的处理;其次,确保 TiKV 侧的 [`raftstore.inspect-network-interval`](/tikv-configuration-file.md#inspect-network-interval) 配置项大于 `0` 以启用网络探测。若要直接关闭 TiKV 内部的网络探测,可将该配置项设置为 `0`。
当你需要直接关闭 tikv 内部的网络探测时,可将 TiKV 侧 [`raftstore.inspect-network-interval`](/tikv-configuration-file.md#inspect-network-interval) 设置为 `0`。
### `scheduler config balance-leader-scheduler`
From c3069cdc0eb38e7c4ebfcdd068f5dfb9b94de6d3 Mon Sep 17 00:00:00 2001
From: okJiang <819421878@qq.com>
Date: Thu, 18 Dec 2025 00:10:28 +0800
Subject: [PATCH 4/4] Update best-practices/pd-scheduling-best-practices.md
Co-authored-by: lucasliang
---
best-practices/pd-scheduling-best-practices.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/best-practices/pd-scheduling-best-practices.md b/best-practices/pd-scheduling-best-practices.md
index e21b6f4c1ac9..cee5b9b11ccd 100644
--- a/best-practices/pd-scheduling-best-practices.md
+++ b/best-practices/pd-scheduling-best-practices.md
@@ -299,7 +299,7 @@ Region Merge 速度慢也很有可能是受到 limit 配置的限制(`merge-sc
自 v5.2.0 起,TiKV 引入了慢节点检测机制。通过对 TiKV 中的请求进行采样,计算出一个范围在 1~100 的分数。当分数大于等于 80 时,该 TiKV 节点会被设置为 slow 状态。可以通过添加 [`evict-slow-store-scheduler`](/pd-control.md#scheduler-show--add--remove--pause--resume--config--describe) 来针对慢节点进行对应的检测和调度。当检测到有且只有一个 TiKV 节点为慢节点,并且该 TiKV 的 slow score 到达限定值(默认 80)时,将节点上的 Leader 驱逐(其作用类似于 `evict-leader-scheduler`)。
-自 v8.5.5 起,TiKV 引入了网络的慢节点检测机制。与磁盘慢节点检测类似,通过在 TiKV 节点之间进行网络探测并计算分数,来判断节点的网络是否出现异常。可以通过 [`enable-network-slow-store`](/pd-control.md#scheduler-config-evict-slow-store-scheduler) 来开启。
+自 v8.5.5 起,TiKV 引入了网络的慢节点检测机制。与磁盘慢节点检测类似,该机制通过在 TiKV 节点之间进行网络延时探测并计算分数,来判断节点的网络是否出现异常。可以通过 [`enable-network-slow-store`](/pd-control.md#scheduler-config-evict-slow-store-scheduler) 来开启。
> **注意:**
>