ETCD 性能优化实践

Sep 25, 2019 22:30 · 356 words · 1 minute read etcd

影响 etcd 性能的因素

  • Raft
    • 网络 IO 节点之间的 RTT/带宽
    • WAL 受到磁盘 IO 写入延迟
  • 存储
    • 磁盘 IO fdatasync 延迟
    • 索引层锁的block
    • boltdb Tx 的锁
    • boltdb 本身的性能
  • 其他
    • 内核参数
    • grpc api 层延迟

server 性能优化

硬件部署

  • 足够的 CPU & Mem
  • 性能优秀的 SSD
  • 网络带宽优先级
  • 独占部署,减少其他程序运行时的干扰

https://etcd.io/docs/v3.4.0/op-guide/hardware/

软件

etcd client 性能优化

  • put 时避免大 value,精简再精简(例如 k8s 中 crd 使用)
  • 避免创建频繁变化的 kv(例如 k8s 中 node 数据上传)
  • 避免创建大量 lease,尽量选择复用(例如 k8s 中 event 数据管理)