etcd实战课
唐聪
腾讯云资深工程师,etcd活跃贡献者
立即订阅
2140 人已学习
课程目录
已更新 16 讲 / 共 27 讲
0/3登录后,你可以任选3讲全文学习。
开篇词 (1讲)
开篇词|为什么你要学习etcd?
免费
基础篇 (11讲)
01 | etcd的前世今生:为什么Kubernetes使用etcd?
02 | 基础架构:etcd一个读请求是如何执行的?
03 | 基础架构:etcd一个写请求是如何执行的?
04 | Raft协议:etcd如何实现高可用、数据强一致的?
05 | 鉴权:如何保护你的数据安全?
06 | 租约:如何检测你的客户端存活?
07 | MVCC:如何实现多版本并发控制?
08 | Watch:如何高效获取数据变化通知?
09 | 事务:如何安全地实现多key操作?
10 | boltdb:如何持久化存储你的key-value数据?
11 | 压缩:如何回收旧版本数据?
实践篇 (4讲)
12 | 一致性:为什么基于Raft实现的etcd还会出现数据不一致?
13 | db大小:为什么etcd社区建议db大小不超过8G?
14 | 延时:为什么你的etcd请求会出现超时?
15 | 内存:为什么你的etcd内存占用那么高?
etcd实战课
15
15
1.0x
00:00/00:00
登录|注册

15 | 内存:为什么你的etcd内存占用那么高?

唐聪 2021-02-22
你好,我是唐聪。
在使用 etcd 的过程中,你是否被异常内存占用等现象困扰过?比如 etcd 中只保存了 1 个 1MB 的 key-value,但是经过若干次修改后,最终 etcd 内存可能达到数 G。它是由什么原因导致的?如何分析呢?
这就是我今天要和你分享的主题:etcd 的内存。 希望通过这节课,帮助你掌握 etcd 内存抖动、异常背后的常见原因和分析方法,当你遇到类似问题时,能独立定位、解决。同时,帮助你在实际业务场景中,为集群节点配置充足的内存资源,遵循最佳实践,尽量减少 expensive request,避免 etcd 内存出现突增,导致 OOM。

分析整体思路

当你遇到 etcd 内存占用较高的案例时,你脑海中第一反应是什么呢?
也许你会立刻重启 etcd 进程,尝试将内存降低到合理水平,避免线上服务出问题。
也许你会开启 etcd debug 模式,重启 etcd 进程等复现,然后采集 heap profile 分析内存占用。
以上措施都有其合理性。但作为团队内 etcd 高手的你,在集群稳定性还不影响业务的前提下,能否先通过内存异常的现场,结合 etcd 的读写流程、各核心模块中可能会使用较多内存的关键数据结构,推测出内存异常的可能原因?
全方位的分析内存异常现场,可以帮助我们节省大量复现和定位时间,也是你专业性的体现。
确认放弃笔记?
放弃后所记笔记将不保留。
新功能上线,你的历史笔记已初始化为私密笔记,是否一键批量公开?
批量公开的笔记不会为你同步至部落
公开
同步至部落
取消
完成
0/1000字
划线
笔记
复制
© 版权归极客邦科技所有,未经许可不得传播售卖。 页面已增加防盗追踪,如有侵权极客邦将依法追究其法律责任。
该试读文章来自付费专栏《etcd实战课》,如需阅读全部文章,
请订阅文章所属专栏
立即订阅
登录 后留言

精选留言(1)

  • shuff1e
    etcd v2 的 key-value 都是存储在内存树中,具体指的是什么呢
    2021-02-22
收起评论
1
返回
顶部