etcd 实战课
唐聪
腾讯云资深工程师,etcd 活跃贡献者
28449 人已学习
新⼈⾸单¥59
登录后,你可以任选3讲全文学习
课程目录
已完结/共 28 讲
开篇词 (1讲)
etcd 实战课
15
15
1.0x
00:00/00:00
登录|注册

14 | 延时:为什么你的etcd请求会出现超时?

思考在使用etcd过程中遇到的高延时请求案例
检查CPU、Memory性能
容量和节点资源瓶颈对高延时请求的影响
解决请求延时较高问题的定位效率
Expensive request对请求延时的影响
定位磁盘I/O异常
监控磁盘相关的metrics
磁盘I/O对性能的影响
etcd应用层提供的节点之间网络统计的metrics指标
定位网络异常导致的延时抖动
网络质量对性能的影响
熟练掌握相关工具
读写请求的核心链路
思考题
集群容量、节点CPU/Memory瓶颈
Expensive Request
磁盘I/O
网络
分析思路及工具
为什么你的etcd请求会出现超时?

该思维导图由 AI 生成,仅供参考

你好,我是唐聪。
在使用 etcd 的过程中,你是否被日志中的"apply request took too long"和“etcdserver: request timed out"等高延时现象困扰过?它们是由什么原因导致的呢?我们应该如何来分析这些问题?
这就是我今天要和你分享的主题:etcd 延时。希望通过这节课,帮助你掌握 etcd 延时抖动、超时背后的常见原因和分析方法,当你遇到类似问题时,能独立定位、解决。同时,帮助你在实际业务场景中,合理配置集群,遵循最佳实践,尽量减少 expensive request,避免 etcd 请求出现超时。

分析思路及工具

首先,当我们面对一个高延时的请求案例后,如何梳理问题定位思路呢?
知彼知己,方能百战不殆,定位问题也是类似。首先我们得弄清楚产生问题的原理、流程,在020304中我已为你介绍过读写请求的核心链路。其次是熟练掌握相关工具,借助它们,可以帮助我们快速攻破疑难杂症。
这里我们再回顾下 03 中介绍的,Leader 收到一个写请求,将一个日志条目复制到集群多数节点并应用到存储状态机的流程(如下图所示),通过此图我们看看写流程上哪些地方可能会导致请求超时呢?
首先是流程四,一方面,Leader 需要并行将消息通过网络发送给各 Follower 节点,依赖网络性能。另一方面,Leader 需持久化日志条目到 WAL,依赖磁盘 I/O 顺序写入性能。
确认放弃笔记?
放弃后所记笔记将不保留。
新功能上线,你的历史笔记已初始化为私密笔记,是否一键批量公开?
批量公开的笔记不会为你同步至部落
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
  • 深入了解
  • 翻译
    • 英语
    • 中文简体
    • 中文繁体
    • 法语
    • 德语
    • 日语
    • 韩语
    • 俄语
    • 西班牙语
    • 阿拉伯语
  • 解释
  • 总结

本文深入分析了etcd请求超时问题的定位方法和原因,为读者提供了解决该问题的实用指南。文章强调了了解etcd的核心链路和掌握相关工具的重要性,包括网络模块可能出现的瓶颈点、磁盘I/O对etcd性能的影响以及etcd 3.4版本后实现的trace特性。通过详细介绍网络异常导致的延时抖动的定位方法和原因,以及磁盘I/O异常的解决方法,帮助读者更好地理解和解决etcd在实际应用中可能遇到的性能问题。文章还提供了一些案例和思考题,帮助读者更好地应对etcd延时抖动。整体而言,本文为读者提供了全面的解决etcd请求超时问题的实用指南,具有很高的实用价值。

仅可试看部分内容,如需阅读全部内容,请付费购买文章所属专栏
《etcd 实战课》
新⼈⾸单¥59
立即购买
登录 后留言

全部留言(6)

  • 最新
  • 精选
  • jeffery
    能规避 expensive request,大包请求导致的延迟吗

    作者回复: 没法规避,只能通过尽量高配的机器配置来缓解,业务尽量避免大量key的查询操作,建议参考kubernetes的Informer机制优化expensive request,一般情况下只需要启动的时候查询一次,后面通过watch机制实时获取数据变化就好,kubernetes节我会详细介绍下

    2021-02-23
    9
  • kingstone
    老师您好,请问关于etcd grafana监控,grafana.com上有没有比较好用的dashboards?

    作者回复: grafana官网提供了一个,你可以看看 https://grafana.com/grafana/dashboards/3070 etcd社区也提供了个 https://github.com/etcd-io/etcd/blob/v3.4.9/Documentation/op-guide/grafana.json

    2021-03-19
    2
  • 八台上
    想问一下出现这个错 etcdserver: request timed out , 客户端进行重拾处理吗? 谢谢

    作者回复: 这个超时时间默认比较长了,最好根据内存和磁盘、grpc请求和延时监控查清楚,当时发生了什么,找到root cause。

    2021-08-26
    3
  • 石小
    感谢唐老师,干货,实用。老师后期会讲etcd典型的应用场景(比如服务发现)和注意事项吗?

    作者回复: 嗯,明天21分布式锁更新会说说分布式锁常见问题

    2021-03-08
  • 宝仔
    老师问下,为什么磁盘IO波动会引起leader切换
    2022-04-13
    3
  • 柒城
    老师你好,我在使用集群时出现一直打印etcdserver: request timed out。然后看了一个节点坏了,但是磁盘并没有坏,除了io延时套可能造成的原因还有哪些?
    2021-06-22
收起评论
显示
设置
留言
6
收藏
沉浸
阅读
分享
手机端
快捷键
回顶部