pd-server 故障,集群不可访问

【 TiDB 使用环境】生产环境
【 TiDB 版本】V6.5.9
【复现路径】无操作
【遇到的问题:问题现象及影响】21:10:08 左右,发现tiup 出来的所有的pd-server 都是down状态,整个集群数据无法访问
【资源配置】
【附件:截图/日志/监控】
1, tiup 出来,所有的pd-server 都是down 状态


2,部分pd-server updatetime 在监控上出现跳变。

在21:30 左右,手动进行了重启

3,10.0.2.86 pd-server 出现大量的如下日志:


4,PD-SERVER 中,有 leader is overloaded 日志

5,发现在出问题前短暂时刻,有tikv 上的leader 被逐步全部切走

6, PD → etcd → 99% Handle trasaction duration

7, PD → etcd → 99% peer round trim time seconds

8, PD → Heartbeat → 99% region heartbeat handle latency

9, PD → HeartBeat → 99% store heartbeat handel duraction

10, 参考这个专题,
tikv-details → PD → Store Slow Store

11,日志有send keepalive message fail, store maybe disconnected ,PD 给 Store 发送信息失败,认为其有可能失去连接。

12,TiKV-Details → Raft IO → 99% Process ready per Servre

13, tikv-details → Region average write bytes
在出问题前(大概率是根因)有一个大量的写入

14,Overview → PD → 99% completed cmds duration seconds

15,PD → Cluster → Goroutine Count

15 PD-> Cluster → CPU Usage & Memory Usage

推测,大概原因某时刻大量的写入,导致某几个tikv节点磁盘存在平静,pd-server认为某几台tikv-server 为慢节点,从而对某个Store(tikv)节点上的Region 的leader角色进行了驱逐。
PD 负责管理 TiKV 集群的调度任务,比如副本调度、负载均衡等。如果集群的负载波动较大,或者数据分布不均衡,在这个case中pd-server 发起了大量的leader 驱逐,PD 频繁进行调度操作,从而导致较高的 CPU 和内存使用。
进而诱发pd-server 响应网络请求不及时,导致tiup 无法获取pd-server信息,进而认为其为 down的状态。

需要处理的问题:
1,找出写热点业务,对表结构和数据分布进行优化?

跪求大佬,帮忙分析下这个问题的原因

PD 5个节点实例一起挂掉了?

这个比较少见,,看看日志吧,看看是什么导致的

从updatime 和日志中观察,pd-server 并没有挂掉,当时进程还存在,只是tiup 出来,发现pd-server 是 down的状态

uptime都能跌0,再跳回去。就说明pd没挂,但是因为什么原因连不上了。uptime这个监控数据都收不到了。

重点查查网络。

5台pd同时出问题。感觉可以排除资源问题,pd挂掉影响leader选举。也是感觉网络的问题比较大。有网络监控的话,查下。或者查下pd所在服务器message日志等。

在 /var/log/messages 中找到一些与网络相关的条目,例如:

网络接口状态变化:当网络接口启动、停止或状态发生变化时,可能会记录相关信息。
DHCP 客户端活动:如果您的系统使用 DHCP 获取 IP 地址,DHCP 客户端(如 dhclient)的日志信息也会出现在这里。
路由更改:某些路由表的变化也可能被记录下来。
网络服务错误:运行在网络层的服务(如 SSH、HTTP 等)遇到的问题有时会在此处记录

1、PD server网络层是否有异常【看丢包:tcp_trans, ping延迟】
2、PD server的服务器是否有异常【看下/var/log/message, 网络带宽】

没雨找到这些异常信息,不过我又补充了一些监控指标,大佬有空的话可以帮忙再分析下。

你的集群 region 很多?

图片

Blackbox_exporter ->Network Status 看下出现问题时间网络延迟呢

感觉像是因为某些原因 region 被唤醒,然后向 pd 上报 region 信息把 PD 打爆了,进而引起的连锁反应。
你的集群有调整过 peer-stale-state-check-interval 静默 region 参数吗?
以及看一下 tikv-details->PD 下面的两个面板

5节点同时挂的概率比较小吧 网络问题


指标是挺高的

/var/log/messages有没有一些错误信息,也可以考虑把异常时间点拎出来给网络人员看下,这些服务器这个时间点的网络是否有异常