某线上业务使用 TiDB v6.5 集群,集群配置 3 个 PD、6 个 TiDB Server、9 个 TiKV 节点,业务核心表 order_trans 存储交易订单数据,主键为自增 BIGINT 类型 id。 业务高峰期出现以下现象:
- 其中一台 TiKV 节点 CPU 长期维持 95% 以上,其余 TiKV 节点 CPU 仅 20%~30%,集群负载严重不均衡;
- 前端下单接口响应从平均 10ms 飙升至 200ms+,频繁出现慢查询告警;
- Grafana 监控看到
order_trans表对应的单个 Region 读写 QPS 突破 2w,其余 Region 几乎无流量; - 尝试手动执行 split region 分裂分区后,短时间负载均衡,半小时后又重新出现热点。
补充背景
- 业务写入逻辑:每秒新增 1500 条订单,全部是自增主键顺序插入;
- 表结构仅主键索引
PRIMARY KEY (id),无其他分区、无 shard 索引; - 集群调度参数为默认配置,未调整 Region 分裂、迁移相关阈值。
需解决问题
- 分析该热点 Region 产生的根本原因;
- 给出可落地的长期优化改造方案(分表结构改造、集群参数调优两类);
- 简述临时应急处理步骤,保障高峰期业务可用。