TiDB单台物理机宕机后,集群读写延迟飙升,持续数小时未恢复

【TiDB 使用环境】生产环境
【TiDB 版本】v5.4.0
【部署方式】物理机部署
【操作系统/CPU架构/芯片详情】CentOS 7.6 / x86_64
【机器部署详情】TiDB节点:16核64GB / TiKV节点:16核128GB,SSD 4TB / PD节点:8核16GB
【集群数据量】约 120TB
【集群节点数】3 TiDB + 3 PD + 21台物理机(42个TiKV节点)
【问题复现路径】机房一台物理机因电源故障宕机,该机器上部署了2个TiKV实例。宕机后集群自动触发副本补全,但读写性能急剧下降,持续超过6小时未恢复
【遇到的问题:问题现象及影响】正常读写延迟约50ms,宕机后飙升至800ms以上;QPS从15000降至2000;部分查询超时报错,影响核心交易业务。PD监控显示大量Region处于"missing"状态,调度任务堆积
【资源配置】[此处插入Dashboard主机截图]
【复制粘贴 ERROR 报错的日志】

看你的描述,问题核心是副本补全触发了大量Region调度,加上TiKV实例数量多(42个),调度风暴把集群IO和网络打满了。6小时没恢复,大概率是调度限流配置太保守,或者补全期间热点集中。

先做这几步:

  1. 调大调度并发:pd-ctl config set region-schedule-limit 1024,同时把leader-schedule-limit调到512,replica-schedule-limit调到256。
  • 可能原因:单台物理机宕机同时丢失两个 TiKV 存储实例,大量 Region 副本缺失;PD 大批量触发副本重建,SST 快照拷贝引发全网 IO、网络风暴,业务读写被阻塞;v5.4 缺少调度限流,调度任务长时间堆积。
  • 短期应急:限制 PD 调度并发、TiKV 快照带宽限速、业务降级;
  • 根治方案:一台物理机仅部署单个 TiKV 节点、多可用区副本隔离、升级新版本、开启副本拷贝限速。

双 TiKV 同机宕机等于一次丢两副本,PD 会猛补副本,IO/网络被调度打满。处理:临时降低调度速度(region/leader schedule limit),优先保证多数派可读;恢复机器后让副本慢慢补齐,而不是全速迁移。长期避免同机多 TiKV、保证跨机架/跨机副本分散。