欢迎您访问 最编程 本站为您分享编程语言代码,编程技术文章!
您现在的位置是: 首页

ETCD 常见问题 - 性能

最编程 2024-05-03 12:52:38
...

我应该如何对etcd进行基准测试?

尝试使用基准测试工具。当前的基准测试结果可用于比较。

etcd警告“应用条目时间过长”是什么意思?

在大多数etcd成员同意提交请求之后,每个etcd服务器将请求应用于其数据存储,并将结果保存到磁盘。即使使用慢速机械磁盘或虚拟化网络磁盘(例如Amazon的EBS或Google的PD),应用请求通常也应少于50毫秒。如果平均申请时间超过100毫秒,etcd将警告条目申请时间太长。

通常,此问题是由磁盘速度慢引起的。磁盘可能正在etcd和其他应用程序之间争用,或者磁盘太慢(例如,共享的虚拟磁盘)。要排除慢速磁盘引起此警告的危险,请监视 backend_commit_duration_seconds(p99持续时间应小于25ms),以确认磁盘速度相当快。如果磁盘速度太慢,则将专用磁盘分配给etcd或使用速度更快的磁盘通常可以解决该问题。

第二个最常见的原因是CPU饥饿。如果监视计算机的CPU使用率显示利用率很高,则可能没有足够的计算能力来存储etcd。将etcd移至专用计算机,增加进程资源隔离cgroup或将etcd服务器进程重新设置为更高的优先级通常可以解决该问题。

访问过多密钥(例如,获取整个密钥空间)的昂贵用户请求也可能导致较长的应用等待时间。但是,每个请求访问少于几百个密钥应该总是有效的。

如果以上建议均不能清除警告,请打开一个问题,其中包含详细的日志记录,监视,指标和可选的工作负载信息。

 

etcd警告“未能及时发送心跳”是什么意思?

etcd使用基于领导者的共识协议来实现一致的数据复制和日志执行。集群成员选出一个领导者,其他所有成员都成为跟随者。The elected leader must periodically send heartbeats to its followers to maintain its leadership. 如果在选举间隔内未收到任何心跳,则跟随者会推断领导者失败并触发选举。如果领导者没有及时发送心跳信号但仍在运行,则选举是虚假的,很可能是由于资源不足造成的。为了捕获这些软故障,如果领导者跳过两个心跳间隔,则etcd将警告它无法按时发送心跳。

通常,此问题是由磁盘速度慢引起的。领导者发送附有元数据的心跳之前,可能需要将元数据持久保存到磁盘。磁盘可能正在etcd和其他应用程序之间争用,或者磁盘太慢(例如,共享的虚拟磁盘)。要排除慢速磁盘引起此警告的危险,请监控 wal_fsync_duration_seconds(p99持续时间应小于10ms)以确认该磁盘是否足够快。如果磁盘速度太慢,则将专用磁盘分配给etcd或使用速度更快的磁盘通常可以解决该问题。

第二个最常见的原因是CPU饥饿。如果监视计算机的CPU使用率显示利用率很高,则可能没有足够的计算能力来存储etcd。将etcd移至专用计算机,使用cgroup增强进程资源隔离或将etcd服务器进程重新设置为更高的优先级通常可以解决该问题。

网络速度慢也会导致此问题。如果etcd机器之间的网络指标显示出较长的延迟或高丢弃率,则可能没有足够的网络容量用于etcd。将etcd成员移动到不太拥挤的网络通常可以解决该问题。但是,如果etcd集群跨数据中心部署,则成员之间的等待时间会很长。对于此类部署,请调整heartbeat-interval配置以使其与计算机之间的往返时间大致匹配,并且election-timeout配置至少应为5 * heartbeat-interval。有关详细信息,请参见调整文档。

如果以上建议均不能清除警告,请打开一个问题,其中包含详细的日志记录,监视,指标和可选的工作负载信息。

etcd警告“请求被忽略(集群ID不匹配)”是什么意思?

每个新的etcd群集都会根据初始群集配置和用户提供的唯一initial-cluster-token值生成一个新的群集ID 。通过具有唯一的集群ID,可以保护etcd免受可能破坏集群的跨集群交互的影响。

通常,此警告是在拆除旧群集,然后为新群集重新使用某些对等地址之后发生的。如果旧集群中的任何etcd进程仍在运行,它将尝试与新集群联系。新集群将识别出集群ID不匹配,然后忽略该请求并发出此警告。通常通过确保不同群集之间的对等地址不相交来清除此警告。

原文地址:https://www.cnblogs.com/determined-K/p/14756685.html