TiDB集群在挂掉机器之后有一些region选不出leader

【 TiDB 使用环境`】生产环境
【 TiDB 版本】v4.0.1
【遇到的问题】
TiDB集群在挂掉机器之后有一些region选不出leader。
昨晚有十几个region有两个副本,但是start key/end key有不同,很久都没有leader。
到现在还有六个region没有leader。
想请问下,有处理加速选出leader的方法吗?

另外,我们看到tidb_server有不少报错是pd timeout,看着没有明显的网络,这个该怎么处理呢?

【复现路径】做过哪些操作出现的问题
【问题现象及影响】

【附件】

请提供各个组件的 version 信息,如 cdc/tikv,可通过执行 cdc version/tikv-server --version 获取。

leader-schedule-limit、region-schedule-limit、replica-schedule-limit、merge-schedule-limit调大点试试

是调度太慢,是还没轮到调度这些region吗?

也是根据你的业务情况的 可适当调整

我理解是scheduler还没来得及生成针对这些region的operator。不过你这是几副本的集群呢,如果是3副本集群,剩下2个副本是可以选出leader的,否则的话它选不出leader的原因就不是调度慢了

三副本的集群,这些region的两个peer 都是start key和end key不完全相同的。
昨晚还有十几个这样的region选不出leader来,现在还有六个。

按我理解也是这样,但是就不知道为什么它就是不选主。

那你试一下查询这些region上的数据,看它是报Region unavailable还是能选出leader

不知道呢,等到miss peer补完看看还有没有剩余。

还有另一个比较严重的问题是一直tidb-server一直稳定地报 PD server timeout 。

我在日志里查了一下,有一个region有三个peer,查到的时候报EpochNotMatch current epoch of region,就是选不出leader。

可以检查一下哪些Region没有Leader

pd-ctl region --pd <pd_ip:2379> --jq ‘.regions[] | select(.leader.store_id == null) | {id: .id, peer_stores: [.peers[].store_id], leader_store: .leader.store_id}’

嗯,用这个命令跑出来确定没有leader的。

pd.log 和tikv.log中根据region_id看看日志信息

此话题已在最后回复的 1 分钟后被自动关闭。不再允许新回复。