kill -9 pd-server leader IO 中断 18s

【 TiKV 使用环境】
集群由 3 个物理节点构成,每个节点上都混部了一个 tikv 服务和一个 pd 服务,用 go-ycsb 进行故障测试。

【 TiKV 版本】
v6.5.1

【复现路径】
集群所有服务状态正常情况下,使用 go-ycsb 测试,一段时间后 kill -9 pd-server-leader,此时 IO 中断时间为 18s 左右


【附件:截图/日志/监控】
观察 pd.log,在 kill 掉 pd leader 之后 3s 开始重新选举

1s 之内就完成了 leader 的选举

但是在 leader 选举出来之后经过了 9s 才进行 leadership 的更新,我们觉得这段时间太长了,但是不知道如何调整,请大佬们指点一下

根据您提供的信息,可以看出在 PD leader 被 kill 掉后,3s 开始重新选举,1s 之内就完成了 leader 的选举,但是在 leader 选举出来之后经过了 9s 才进行 leadership 的更新。

这个问题可能是由于 PD leader 的 lease 时间过长导致的。PD leader 的 lease 时间是通过 PD 配置文件中的 lease 参数来设置的。默认情况下,PD leader 的 lease 时间为 9s。如果您的集群中的 PD leader 的 lease 时间过长,那么在 PD leader 被 kill 掉后,重新选举出新的 PD leader 之后,需要等待 lease 时间过期之后才会更新 leadership。

您可以尝试将 PD leader 的 lease 时间设置为更短的时间,例如 3s,来减少 leadership 更新的时间。在 PD 配置文件中,可以通过设置 lease 参数来修改 PD leader 的 lease 时间。例如:

[raft]
...
# PD leader lease time (in seconds)
lease = 3
...

修改完配置文件之后,需要重启 PD 进程才能生效。

另外,如果您的集群中的 PD leader 经常被 kill 掉,建议您检查一下集群的网络环境和硬件资源是否满足 TiDB 集群的要求,以及是否存在其他问题导致 PD leader 经常被 kill 掉。

当前 pd 的配置是 lease 已经是 3s:

更详细的配置信息可以参见附件:
pd-config (6.6 KB)

如果我尝试设置 raft.lease 会报配置非法,是不是在 v6.5.1 下只有 lease 了?

在我确认所有节点的当前的 lease 均为 3 的前提下,又重启了所有 pd-server,复测了 kill -9 pd-leader,现象还是 IO 中断 18s,是否有其他参数需要调整?

1 个赞

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