【 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,是否有其他参数需要调整?
system
(system)
关闭
5
此话题已在最后回复的 60 天后被自动关闭。不再允许新回复。