Ker · 2021年08月26日

在基于ARM Neoverse IP的AWS实例上 etcd 性能提升高达 18%

1. 简介

etcd是一个分布式键值对存储,设计用来可靠而快速的保存关键数据并提供给分布式系统访问,尤其被当前最流行的容器编排平台kubernetes所使用,用来管理配置数据、状态数据和元数据。

etcd 集群旨在提供具有最佳稳定性、可靠性、可扩展性和性能的键值存储。吞吐量和延迟是衡量性能的一些最常用方法,延迟是完成操作所需的时间,吞吐量是在给定时间段内完成的总操作数。

在本文中,我们比较了AWS M6g实例(基于 Arm Neoverse IP的 Graviton2)与M5实例(基于 Xeon Platinum 8000系列)上的etcd吞吐量和延迟,以展示Graviton2上的性能优势。

2. 基准测试搭建与结果

对于测试环境的搭建,我们使用了集成在etcd项目中的默认benchmark工具,这是etcd的官方基准测试工具。
etcd的性能测试通常有两种类型的“写”工作负载:

  • Write to leader
  • Write to all members

etcd-leader-final.png
Figure 1: 测试拓扑(Write to leader)

etcd-all-memebers-final.png
Figure 2: 测试拓扑(Write to all members)

该测试用到了四个EC2集群,配置如下,并且为这些实例使用了同一个置放群组以减少网络延迟。基准测试客户端使用一个m6g.4xlarge实例。
1.png
Table 1: 测试集群配置

基准测试软件版本和测试参数如下:
para.png

下表显示的结果是经过预热阶段(20次测试运行迭代)后20次连续测试运行迭代的汇总结果(20次的平均值),每次结果中取平均吞吐量和平均延迟作为衡量标准。与Xeon实例相比,在Graviton2实例上运行etcd可以得到18%的性能提升。

“Write to leader” case:

101.png
Table 2: etcd在M5和M6g上的吞吐量性能结果 (Write to leader)

102.png
Table 3: etcd在M5和M6g上的时延性能结果 (Write to leader)

“Write to all members” case:

103.png
Table 4: etcd在M5和M6g上的吞吐量性能结果 (Write to all members)

104.png
Table 5: etcd在M5和M6g上的时延性能结果 (Write to all members)

下图显示了在M5和M6g实例上运行etcd的的吞吐量和延迟比较 (Write to leader case)。

_leader_throughput.png
Figure 3: M6g VS M5 实例的性能提升 (Write to leader case)

_leader_latency.png
Figure 4: M6g VS M5 实例的延迟降低 (Write to leader case)

下图显示了在M5和M6g实例上运行etcd的的吞吐量和延迟比较(Write to all members case)。

_all_member_throughput.png
Figure 5: M6g VS M5 实例的性能提升 (Write to all members case)

_all_member_latency.png
Figure 6: M6g VS M5 实例的延迟降低(Write to all members case)

3. 总结

总而言之,与基于x86的同水平EC2实例相比,部署在AWS Graviton2上的etcd提升了高达18%的吞吐量,减少了18%的延迟,此外还有20%的成本优势。在这些实例上部署应用程序既简单又高效,不会产生额外开销。有关如何将现有应用程序迁移到AWS Graviton2的详细信息,请查看此github页面。
访问AWS Graviton页面,了解有关采用基于 Arm 的处理器的客户案例。如果您对在Arm Neoverse平台上运行的软件工作负载有任何疑问,欢迎留言讨论。

推荐阅读
关注数
17325
内容数
73
分享arm服务器软件应用经验、测试方法、优化思路、工具使用等。
目录
极术微信服务号
关注极术微信号
实时接收点赞提醒和评论通知
安谋科技学堂公众号
关注安谋科技学堂
实时获取安谋科技及 Arm 教学资源
安谋科技招聘公众号
关注安谋科技招聘
实时获取安谋科技中国职位信息