扩容etcd是否会影响写入性能?其写入性能是否不随副本数增长?
etcd写性能与副本数量的关系解答
核心结论
写性能不会随etcd集群副本数量的增加而提升,且会随着副本数的增长出现明显下降,并非恒定值。
原因说明
- 写请求入口唯一:基于Raft算法的选举规则,etcd集群同一时间只会有一个Leader节点,所有write请求必须由Leader处理,Follower节点不承接写流量,新增副本只会增加可承接read请求的节点,不会新增写请求的处理资源,从架构根源上不存在写性能水平扩展的可能性。
- 多数派提交成本上涨:Raft算法要求写操作必须获得超过集群半数节点的持久化确认后才算提交完成,副本数越多需要等待的确认节点数量越高:3副本集群需要2个节点确认、5副本需要3个、7副本需要4个。Leader需要向更多节点广播写日志,等待更多节点返回ACK,网络开销和等待延迟都会同步上升,直接拉低写吞吐量、提升写请求延迟。
- Leader节点负载升高:Raft的写日志会附带在Leader向所有Follower发送的心跳包中传输,副本数量越多,Leader需要处理的心跳发包、回包解析成本越高,会占用更多CPU、网络带宽资源,进一步挤压写请求的处理资源。
生产实践参考
生产环境中etcd集群的副本数通常选择3、5,最多不超过7,就是因为副本数超过7之后,写性能下降的幅度已经远高于容灾能力提升带来的收益。
内容的提问来源于stack exchange,提问作者benjimin
相关产品推荐
相关产品推荐

