文档版本 v3.7-DRAFT 处于 草稿 状态。如需获取最新的稳定版文档,请参阅 v3.6。
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 百分位延迟(毫秒) | 延迟标准差 |
|---|---|---|---|---|---|---|
| 64 | 1 | 仅领导者 | 2303 | 200 | 0.49 | 0.06 |
| 64 | 64 | 仅领导者 | 15048 | 685 | 7.60 | 0.46 |
| 64 | 256 | 仅领导者 | 14508 | 434 | 29.76 | 1.05 |
| 256 | 1 | 仅领导者 | 2162 | 214 | 0.52 | 0.06 |
| 256 | 64 | 仅领导者 | 14789 | 792 | 7.69 | 0.48 |
| 256 | 256 | 仅领导者 | 14424 | 512 | 29.92 | 1.42 |
| 64 | 64 | 所有服务器 | 45752 | 2048 | 2.47 | 0.14 |
| 64 | 256 | 所有服务器 | 46592 | 1273 | 10.14 | 0.59 |
| 256 | 64 | 所有服务器 | 45332 | 1847 | 2.48 | 0.12 |
| 256 | 256 | 所有服务器 | 46485 | 1340 | 10.18 | 0.74 |
单键写入性能
| 键大小(字节) | 客户端数量 | 目标 etcd 服务器 | 平均写入 QPS | 写入 QPS 标准差 | 平均 90 百分位延迟(毫秒) | 延迟标准差 |
|---|---|---|---|---|---|---|
| 64 | 1 | 仅领导者 | 55 | 4 | 24.51 | 13.26 |
| 64 | 64 | 仅领导者 | 2139 | 125 | 35.23 | 3.40 |
| 64 | 256 | 仅领导者 | 4581 | 581 | 70.53 | 10.22 |
| 256 | 1 | 仅领导者 | 56 | 4 | 22.37 | 4.33 |
| 256 | 64 | 仅领导者 | 2052 | 151 | 36.83 | 4.20 |
| 256 | 256 | 仅领导者 | 4442 | 560 | 71.59 | 10.03 |
| 64 | 64 | 所有服务器 | 1625 | 85 | 58.51 | 5.14 |
| 64 | 256 | 所有服务器 | 4461 | 298 | 89.47 | 36.48 |
| 256 | 64 | 所有服务器 | 1599 | 94 | 60.11 | 6.43 |
| 256 | 256 | 所有服务器 | 4315 | 193 | 88.98 | 7.01 |
性能变化
由于 etcd 现在记录每个 API 调用的指标,读取 QPS 性能在大多数情况下似乎略有下降。这种微小的性能影响被认为是合理的投入,以换取更广泛的监控和调试信息。
写入集群领导者的 QPS 似乎有小幅增加。这是因为 etcd 的 raft 逻辑中主循环和条目应用循环被解耦,消除了它们之间的几个阻塞点。
写入所有成员的 QPS 似乎有显著增加,因为跟随者现在更快地接收到最新的提交索引,并更快地提交提案。