etcd:增加30%的写入性能

💡 原文中文,约5200字,阅读约需13分钟。
📝

内容提要

本文介绍了对etcd集群性能分析的过程,发现写性能瓶颈导致线程等待IO。尝试升级卷为GP3类型提高IOPS,但未达预期。还介绍了fdatasync系统调用对性能的影响和etcd存储性能测试方法。

🎯

关键要点

  • 对etcd集群进行性能分析,发现写性能瓶颈导致线程等待IO。

  • 每个etcd集群有5个成员,使用gp2卷,最大支持900 IOPS。

  • 在负载为l时,测试失败,集群可执行6.6K/s的写操作。

  • 使用fio测试fdatasync延迟,发现延迟为2671微秒,IOPS为709。

  • 将卷升级为GP3,支持最小3000 IOPS,但实际IOPS仅为1105,低于预期。

  • 操作系统缓存写操作,导致I/O延迟增加,影响性能。

  • etcd使用fdatasync系统调用,确保数据持久化,影响性能。

  • 使用fio测试etcd存储性能,建议99%的指标值小于10ms。

  • etcd使用WAL记录操作,确保数据持久化,需执行fdatasync。

延伸问答

etcd集群的写性能瓶颈是什么?

etcd集群的写性能瓶颈主要是由于线程等待IO造成的,尤其是在使用gp2卷时,最大支持900 IOPS。

如何测试etcd的存储性能?

可以使用fio工具进行测试,命令中需指定--rw=write和--fdatasync=1,以模拟etcd的写入方式。

将卷升级为GP3后,etcd的IOPS表现如何?

升级为GP3后,etcd的IOPS从900提升至1105,但仍低于预期的3000 IOPS。

fdatasync系统调用对etcd性能有什么影响?

fdatasync系统调用确保数据持久化,但会导致I/O延迟增加,从而影响etcd的整体性能。

etcd集群在负载为l时的写操作能力是多少?

在负载为l时,etcd集群的写操作能力为6.6K/s。

为什么在高IOPS下etcd的性能仍然受限?

尽管IOPS规格提高,但操作系统的写缓存和存储设备的限制仍会导致性能瓶颈。

🏷️

标签

➡️

继续阅读