没有人工介入时,PD 处理 TiKV 节点故障的默认行为是,等待半小时之后(可通过 max-store-down-time
配置调整),将此节点设置为 Down 状态,并开始为涉及到的 Region 补充副本。
实践中,如果能确定这个节点的故障是不可恢复的,可以立即做下线处理,这样 PD 能尽快补齐副本,降低数据丢失的风险。与之相对,如果确定这个节点是能恢复的,但可能半小时之内来不及,则可以把 max-store-down-time
临时调整为比较大的值,这样能避免超时之后产生不必要的副本补充,造成资源浪费。
自 v5.2.0 起,TiKV 引入了慢节点检测机制。通过对 TiKV 中的请求进行采样,计算出一个范围在 1~100 的分数。当分数大于等于 80 时,该 TiKV 节点会被设置为 slow 状态。可以通过添加 evict-slow-store-scheduler
来针对慢节点进行对应的检测和调度。当检测到有且只有一个 TiKV 节点为慢节点,并且该 TiKV 的 slow score 到达限定值(默认 80)时,将节点上的 Leader 驱逐(其作用类似于 evict-leader-scheduler
)。