码迷,mamicode.com
首页 > 其他好文 > 详细

etcd报错failed to send out heartbeat on time

时间:2020-03-30 19:44:12      阅读:244      评论:0      收藏:0      [点我收藏+]

标签:bsp   心跳检测   0ms   过程   一个   cti   性能   led   img   

 

etcd服务出现了以下报错
Mar 23 05:50:44 localhost etcd: failed to send out heartbeat on time (exceeded the 100ms timeout for 2.951502ms)

技术图片

 

 心跳检测报错主要与以下因素有关(磁盘速度、cpu性能和网络不稳定问题):

第一,etcd使用了raft算法,leader会定时地给每个follower发送心跳,如果leader连续两个心跳时间没有给follower发送心跳,etcd会打印这个log以给出告警。通常情况下这个issue是disk运行过慢导致的,leader一般会在心跳包里附带一些metadata,leader需要先把这些数据固化到磁盘上,然后才能发送。写磁盘过程可能要与其他应用竞争,或者因为磁盘是一个虚拟的或者是SATA类型的导致运行过慢,此时只有更好更快磁盘硬件才能解决问题。etcd暴露给Prometheus的metrics指标wal fsync

duration_seconds就显示了wal日志的平均花费时间,通常这个指标应低于10ms。

第二种原因就是CPU计算能力不足。如果是通过监控系统发现CPU利用率确实很高,就应该把etcd移到更好的机器上,然后通过cgroups保证etcd进程独享某些核的计算能力,或者提高etcd的priority。

第三种原因就可能是网速过慢。如果Prometheus显示是网络服务质量不行,譬如延迟太高或者丢包率过高,那就把etcd移到网络不拥堵的情况下就能解决问题。但是如果etcd是跨机房部署的,长延迟就不可避免了,那就需要根据机房间的RTT调整heartbeat-interval,而参数election-timeout则至少是heartbeat-interval的5倍。

etcd报错failed to send out heartbeat on time

标签:bsp   心跳检测   0ms   过程   一个   cti   性能   led   img   

原文地址:https://www.cnblogs.com/golinux/p/12600437.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!