etcd v2.2.0 基准测试

etcd v2.2.0 的性能指标

物理机

GCE n1-highcpu-2 机器类型

  • 1 块专用本地 SSD 作为 etcd 数据目录
  • 1 块专用慢速磁盘用于操作系统
  • 1.8 GB 内存
  • 2 个 CPU

etcd 集群

3 个 etcd 2.2.0 成员,每个成员运行在一台单独的机器上。

详细版本:

etcd Version: 2.2.0
Git SHA: e4561dd
Go Version: go1.5
Go OS/Arch: linux/amd64

测试

启动另一台不在 etcd 集群中的机器,并使用带有连接复用补丁的 hey HTTP 基准测试工具 向每个 etcd 集群成员发送请求。请参阅 基准测试说明 以获取补丁和重现我们步骤的方法。

性能是通过 100 轮基准测试的结果计算得出的。

性能

单键读取性能

键大小(字节)客户端数量目标 etcd 服务器平均读取 QPS读取 QPS 标准差平均 90 百分位延迟(毫秒)延迟标准差
641仅领导者23032000.490.06
6464仅领导者150486857.600.46
64256仅领导者1450843429.761.05
2561仅领导者21622140.520.06
25664仅领导者147897927.690.48
256256仅领导者1442451229.921.42
6464所有服务器4575220482.470.14
64256所有服务器46592127310.140.59
25664所有服务器4533218472.480.12
256256所有服务器46485134010.180.74

单键写入性能

键大小(字节)客户端数量目标 etcd 服务器平均写入 QPS写入 QPS 标准差平均 90 百分位延迟(毫秒)延迟标准差
641仅领导者55424.5113.26
6464仅领导者213912535.233.40
64256仅领导者458158170.5310.22
2561仅领导者56422.374.33
25664仅领导者205215136.834.20
256256仅领导者444256071.5910.03
6464所有服务器16258558.515.14
64256所有服务器446129889.4736.48
25664所有服务器15999460.116.43
256256所有服务器431519388.987.01

性能变化

  • 由于 etcd 现在记录每个 API 调用的指标,读取 QPS 性能在大多数情况下似乎略有下降。这种微小的性能影响被认为是合理的投入,以换取更广泛的监控和调试信息。

  • 写入集群领导者的 QPS 似乎有小幅增加。这是因为 etcd 的 raft 逻辑中主循环和条目应用循环被解耦,消除了它们之间的几个阻塞点。

  • 写入所有成员的 QPS 似乎有显著增加,因为跟随者现在更快地接收到最新的提交索引,并更快地提交提案。


最后更新于 2025 年 6 月 3 日:递归地将 v3.6 的内容复制到 v3.7(a90b2a6)