理解Etcd性能
性能影响点
Raft层
- 网络IO,节点之间的RTT/带宽
- WAL受到到磁盘IO写入延迟影响
Storage层
- 磁盘IO fdatasync延迟
- 索引层锁的block
- boltdb Tx的锁
- boltdb本身的性能
其他
- 内核参数
- grpc api层延迟
性能优化
server优化
硬件部署
- 升级cpu、mem
- 使用性能优秀的ssd
- 网络带宽优先级
- 独占部署,减少其它程序的运行时干扰
软件
- 内存索引层:提升etcd内存索引性能,优化内部锁的使用减少等待时间
- lease规模使用:优化lease revoke和过期失效的算法,解决了lease规模性的问题
- 后端boltdb使用优化:后端batch size limit/interval都可以配置,可根据不同的硬件和工作负载配置(以前是保守值)
client优化
- put时避免大value,需要精简数据
- 避免创建频繁变化的key/value
- 避免创建大量lease,尽量选择复用