- nebula 版本:3.8.0
- 部署方式:分布式
- 安装方式:tar
- 是否上生产环境:Y
- 硬件信息
- 磁盘 12 * 880G SSD
- CPU 40核
- 内存信息 392G
- 问题的具体描述
存在某个storage总是显示0个leader,执行balance leader后效果也不明显,有时候还会显示offilne状态。
storage日志中有如下警告,这是其它几个storage不带这个玩了吗。
看log是心跳时间间隔太长了,可能有以下原因:
1.没有leader分片的那台机器负载过高
2.没有leader分片的那台机器网络问题
这机器之前写了好多wal文件,现在已经处理了。是不是那段时间一直连不上这台机器,导致的后遗症啊。目前负载啥的挺正常的。服务器之间也没有丢包啥的。
现在有有效的leader分片了不
我手动执行balance leader的话会分过去几个吧,每次大约3到5个。但是那个pause这个报错没停过,执行重建索引后这个节点会失败,然后又变成0了。感觉其它四台机器已经不带他玩了。
我刚看了下源码,这个没有leader分片的节点是因为发送心跳到其他节点回复超时导致的,
这也就是你balance leader后出现了几个leader,然后leader分片需要给其他副本发送心跳维持leader角色,但是你这台服务器的leader发送心跳接收response超时,系统可能认为这台机器跟其他机器连接有问题,故后面后面应该又发生了选举,这台机器的leader角色又被替换掉了。
相关关键代码:
1 个赞
这地方我看了,我把raft_heartbeat_interval_secs那个时间设置成10分钟先观察观察吧
是不是得调长raft_rpc_timeout_ms这个参数?这个才是控制rpc超时时间?