Etcd 推荐配置(生产环境)
性能测试结果
客户端节点数量 | vCPU | 内存 | 磁盘大小 | 建议 etcd 节点数 | etcd 客户端连接数 | etcd 请求数/每秒 | 数据量 | 读 QPS(线性) | 写 QPS | 读 QPS(串行) |
---|---|---|---|---|---|---|---|---|---|---|
50 |
2核 |
8G |
20G SSD |
5 |
<100 |
200 |
约100M |
12509.93 |
21989.2 |
20125.71 |
250 |
4核 |
16G |
20G SSD |
5 |
<500 |
1000 |
约500M |
23043.92 |
45052.9 |
33582.68 |
1000 |
8核 |
32G |
20G SSD |
7 |
<1500 |
10000 |
约1GB |
44721.41 |
47735.1 |
61122.55 |
3000 |
16核 |
64G |
20G SSD |
9 |
>1500 |
>10000 |
>1GB |
66219.35 |
39326.5 |
169194.62 |
注意 |
---|
读写 QPS 为 etcd 100 连接,1000 客户端 下的 etcd benchmark 结果。
|
推荐 etcd 集群配置
K8S 集群规模 | etcd 节点数量 | CPU | 内存 | 磁盘 |
---|---|---|---|---|
工作节点数量:100 个 |
5 |
4核 |
16G |
20GB SSD |
工作节点数量:250 个以上 |
7 |
8核 |
32G |
20GB SSD |
CPU
典型的集群需要 2核 ~ 4核才能顺利运行。
重负载的 etcd 部署,每秒服务数千个客户端或数万个请求,往往受 CPU 限制,因为 etcd 可以处理来自内存的请求,比如将数据写入落盘。如此繁重的部署通常需要 8~16 个 CPU。
内存
etcd 集群将积极缓存键值数据到内存,并同时花费大部分其余的内存跟踪观察者(watchers)。
通常 8GB 就足够了。
对于具有数千个观察者和数百万个键的大量部署,可以相应地分配 16GB ~ 64GB 内存。
磁盘
官方推荐使用 SSD 类型的磁盘,性能最佳。
etcd quota-backend-bytes(存储大小限制)
缺省值目前为 2GB
,在工作节点数达 1000 个时,建议设置为 4GB
(最大8GB)。