2.4. 推荐的 etcd 实践
对于大型高密度的集群,如果键空间增长过大并超过空间的配额,则 etcd 的性能会受到影响。这需要定期对 etcd 进行维护(包括整理碎片)来释放数据存储中的空间。强烈建议您密切监控 Prometheus 中的 etcd 指标数据,并提早进行碎片整理。否则,etcd 可能会引发一个集群范围的警告,使集群进入维护模式(只能对键进行读和删除)。需要密切关注的指标数据是 etcd_server_quota_backend_bytes
, 即当前的配额限制;etcd_mvcc_db_total_size_in_use_in_in_bytes
,它显示了对历史数据进行压缩后的实际数据库用量;etcd_debugging_mvcc_db_total_size_in_bytes
,它显示了数据库大小,包括等待进行碎片处理的空闲空间。
etcd 在所有成员间复制请求,因此其性能会严重依赖于网络输入/输出(IO)的延迟。大量网络延迟会导致 etcd heartbeat 的时间比选举超时时间更长,这会导致一个可能会对集群造成破坏的领导选举。在部署的 OpenShift Container Platform 集群上监控的一个关键指标是每个 etcd 集群成员上的 etcd 网络对延迟的 p99 百分比。使用 Prometheus 跟踪指标数据。histogram_quantile(0.99, rate(etcd_network_peer_round_trip_time_seconds_bucket[2m]))
报告 etcd 在成员间复制客户端请求的时间 ; 它应该小于 50 ms。