heartbeat-interval
目前 heartbeat-interval 使用默认值 即100 , 较小的心跳间隔会导致发送频繁的消息,消耗 CPU 和网络资源。而较大的心跳间隔,又会导致检测到 Leader 故障不可用耗时过长,影响业务可用性。我们可以将其优化为300
election-timeout
目前 election-timeout 使用默认值 即1000 election-timeout至少为heartbeat-interval的10倍 因此需要调整为 3000
snapshot-count
snapshot-count 值过大它会消耗较多内存,过小则的话在某节点数据落后时,如果它请求同步的日志条目 Leader 已经压缩了,此时我们就不得不将整个 db 文件发送给落后节点,然后进行快照重建。快照重建是极其昂贵的操作,对服务质量有较大影响,因此我们需要尽量避免快照重建。etcd 3.2 版本之前 snapshot-count 参数值是 1 万,比较低,短时间内大量写入就较容易触发慢的 Follower 节点快照重建流程。etcd 3.2 版本后将其默认值调大到 10 万,可以将该参数调整为默认值即10万。(tcs存在一行log数据量过大的问题 如果改成10w可能会导致内存占用过大 暂时维持1w)
quota-backend-bytes
目前设置为 32g 比较大 可以调整为社区的推荐值 8g 防止db文件过大导致的一系列问题(如 etcd启动时间过长 等)
logger
目前为默认值 不开启 trace日志 可以设置为zap 开启trace日志 可以查看etcd请求流程各个阶段的耗时情况 便于排查问题
参数优化汇总
--heartbeat-interval=300 (当前为默认值 100)
--election-timeout=3000(当前为默认值 1000)
--quota-backend-bytes=8589934592 (当前值为 34359738368)
--logger=zap (当前不开启trace日志)
--metrics=extensive
GODEBUG:madvdontneed=1
标签:快照,timeout,--,参数,election,etcd,默认值,优化 From: https://www.cnblogs.com/Robi-9662/p/17513842.html