Pasue this host because long time no heartbeat response

  • 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了。感觉其它四台机器已经不带他玩了。 :joy:

我刚看了下源码,这个没有leader分片的节点是因为发送心跳到其他节点回复超时导致的,
这也就是你balance leader后出现了几个leader,然后leader分片需要给其他副本发送心跳维持leader角色,但是你这台服务器的leader发送心跳接收response超时,系统可能认为这台机器跟其他机器连接有问题,故后面后面应该又发生了选举,这台机器的leader角色又被替换掉了。
相关关键代码:

1 个赞

这地方我看了,我把raft_heartbeat_interval_secs那个时间设置成10分钟先观察观察吧

是不是得调长raft_rpc_timeout_ms这个参数?这个才是控制rpc超时时间?