为什么你的etcd请求会超时

etcd请求出现高延迟

etcd的请求为何出现高延迟?
Leader在接收到的写请求,讲一个日志条目复制到集群多数节点并应用到存储状态的流程,会出现哪些情况导致请求超时?

  • Leader向从节点发消息:Leader需要并行将消息通过网络发送给Follower节点,依赖网络性能;Leader需持久化日志条目到WAL,依赖磁盘IO顺序写入性能。
  • 应用日志条目到存储状态机时,etcd后端key-value存储引擎是boltdb,boltdb是一个基于B+ Tree实现的存储引擎,当写入数据、提交事物时,它会将
    dirty page持久化到磁盘中。
  • 在整个写流程过程中,etcd节点的cpu、内存、网络资源应充足,否则可能也会影响性能。

定位网络延时抖动

使用ping/traceroute/mtr、ethtool、ifconfig/ip、netstat、tcpdump等命令获取相关数据。

etcd应用层提供了节点之间网络统计的metrics指标:

指标 解释
etcd_network_active_peer peer之间活跃的连接数
etcd_network_peer_round_trip_time_seconds peer之间rtt延时
etcd_network_peer_send_failures_total peer发送的失败消息数
etcd_network_client_grpc_send_bytes_total server发送给client的总字节数
etcd_network_client_grpc_received_bytes_total server接收到client的总字节数

网络质量导致etcd性能:

  • expensive request中的大包查询会使网卡出现瓶颈,产生丢表等错误,从而导致etcd吞吐量下降、高延时,这是因为业务没有遵循最佳实践,查询了大量key-value。
  • 在跨故障部署的时候,故障域可能是可用区、城市,各个节点的RTT越高,请求的延时跟高。

磁盘I/O

etcd_disk_wal_fsync_duration_seconds(表示WAL日志持久化的fsync系统调用延时数据)
和etcd_disk_backend_commit_duration_seconds(后端boltdb事物提交的延时)观察应用层写入磁盘的性能。

如果etcd的WAL模块在fdatasync操作超过1秒时,将相应的日志输出。

etcd_disk_backend_commit_duration_seconds指标的异常时,说明事物提交过程中的B+ Tree树重平衡、分裂、持久化dirty page、持久化meta
page 等操作耗费了大量时间。

etcd_disk_backend_commit_duration_seconds较高、etcd_disk_wal_fsync_duration_seconds正常,说明B+ Tree的重平衡、分裂过程中的
较高时间复杂度逻辑操作导致。

disk_backend_commit_rebalance_duration和disk_backend_commit_spill_duration分别表明事物提交过程中B+ Tree的重平衡和分裂操作
耗时分布区间。

etcd_disk_wal_fsync_duration_seconds记录的是WAL文件顺序写入的持久化时间, etcd_disk_backend_commit_duration_seconds记录
的是整个事物提交的耗时。

Expensive request

etcd 3.2和etcd 3.3版本写请求完成之前,需要更新MVCC的buffer,进行升级锁操作。然而此时若集群中出现一个long expensive read request,
则会导致写请求延时抖动。

在etcd 3.4中,logger默认为capnslog,trace特性只有在当logger为zap时才开启,因此你需要设置--logger=zap。
trace特性不能记录所有类型的请求,目前只覆盖了MVCC模块中的range/put/txn等常用接口。

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 219,589评论 6 508
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 93,615评论 3 396
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 165,933评论 0 356
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,976评论 1 295
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,999评论 6 393
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,775评论 1 307
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,474评论 3 420
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,359评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,854评论 1 317
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 38,007评论 3 338
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 40,146评论 1 351
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,826评论 5 346
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,484评论 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 32,029评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 33,153评论 1 272
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,420评论 3 373
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 45,107评论 2 356

推荐阅读更多精彩内容