etcd实战课
唐聪
腾讯云资深工程师,etcd活跃贡献者
立即订阅
2100 人已学习
课程目录
已更新 14 讲 / 共 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 | 压缩:如何回收旧版本数据?
实践篇 (2讲)
12 | 一致性:为什么基于Raft实现的etcd还会出现数据不一致?
13 | db大小:为什么etcd社区建议db大小不超过8G?
etcd实战课
15
15
1.0x
00:00/00:00
登录|注册

13 | db大小:为什么etcd社区建议db大小不超过8G?

唐聪 2021-02-17
你好,我是唐聪。
03写流程中我和你分享了 etcd Quota 模块,那么 etcd 为什么需要对 db 增加 Quota 限制,以及不建议你的 etcd 集群 db 大小超过 8G 呢? 过大的 db 文件对集群性能和稳定性有哪些影响?
今天我要和你分享的主题就是关于 db 大小。我将通过一个大数据量的 etcd 集群为案例,为你剖析 etcd db 大小配额限制背后的设计思考和过大的 db 潜在隐患。
希望通过这节课,帮助你理解大数据量对集群的各个模块的影响,配置合理的 db Quota 值。同时,帮助你在实际业务场景中,遵循最佳实践,尽量减少 value 大小和大 key-value 更新频率,避免 db 文件大小不断增长。

分析整体思路

为了帮助你直观地理解大数据量对集群稳定性的影响,我首先将为你写入大量数据,构造一个 db 大小为 14G 的大集群。然后通过此集群为你分析 db 大小的各个影响面,db 大小影响面如下图所示。
首先是启动耗时。etcd 启动的时候,需打开 boltdb db 文件,读取 db 文件所有 key-value 数据,用于重建内存 treeIndex 模块。因此在大量 key 导致 db 文件过大的场景中,这会导致 etcd 启动较慢。
其次是节点内存配置。etcd 在启动的时候会通过 mmap 将 db 文件映射内存中,若节点可用内存不足,小于 db 文件大小时,可能会出现缺页文件中断,导致服务稳定性、性能下降。
确认放弃笔记?
放弃后所记笔记将不保留。
新功能上线,你的历史笔记已初始化为私密笔记,是否一键批量公开?
批量公开的笔记不会为你同步至部落
公开
同步至部落
取消
完成
0/1000字
划线
笔记
复制
© 版权归极客邦科技所有,未经许可不得传播售卖。 页面已增加防盗追踪,如有侵权极客邦将依法追究其法律责任。
该试读文章来自付费专栏《etcd实战课》,如需阅读全部文章,
请订阅文章所属专栏
立即订阅
登录 后留言

精选留言(1)

  • 写点啥呢
    请问下老师:
    1. etcd启动时候构建treeindex为什么需要加锁?如果构建时候是单goroutine是否可以避免加锁操作?
    2. ./benchmark put --key-size 32 --val-size 10240 --total 1000000 --key-space-size 2000000 --clients 50 --conns 50 这个命令total参数是1个M,为啥会插入1.2M个key呢?
    2021-02-17
    1
收起评论
1
返回
顶部