Pranay Bakre
January 28, 2021
正如AWS re:Invent 2020中所强调的那样,许多客户正在获得使用 Arm Neoverse 支持的 AWS Graviton2 处理器的性价比优势。与基于 x86 的 Amazon EC2 实例相比,Amazon EC2 M6g、C6g、R6g 和 C6gn 实例的性价比最高可提高 40%。
在本博客中,我们展示了在基于 AWS Graviton2 的实例上运行 Memcached 工作负载与基于 x86 的同等实例相比 51% 的性能优势。我们正在Graviton2上发布一系列工作负载性能基准测试,建议查看我们的NGINX和Elasticsearch博客。
Memcached 是一种开源、高性能、分布式内存对象缓存系统,是支持 Web、移动应用程序、游戏、广告技术和电子商务中的实时应用程序的流行选择。它是一种内存键值存储,通过消除访问磁盘或 SSD 的需要来提供更高的应用程序性能。通过将数据保存在内存中,它可以避免延迟,并且可以比传统的基于磁盘的数据库更快地访问数据。
对于 Memcached 的性能基准测试,我们使用了内存优化的 Amazon EC2 R6g 实例。这些实例非常适合运行 Memcached 等内存密集型工作负载。我们在 R6g 和 R5 实例上安装了 Memcached 开源二进制文件,并观察到以下吞吐量和延迟结果:
绩效基准测试过程和结果
我们在与 Memcached 实例相同的 VPC 中的不同 EC2 实例上部署了 Memtier,这是一种用于 Memcached 的开源高吞吐量基准测试工具。根据以下参数,每个 Memcached 实例都会收到相同的负载。
在 R5 和 R6g EC2 实例上执行基准测试时使用了以下输入参数。
每次测试运行生成 5 个线程,每个线程有 100 个客户端,这会提供 500 个同时连接(会话)。每次运行从 Memtier 发送的请求数量总计达 500 万个。表 1 中的结果显示了吞吐量(操作数/秒)和延迟(越低越好)值。
配置
以下是构建测试设置的先决条件。
Memcached 1.6.6 需要 Ubuntu 20.10,并且可能无法通过 APT 存储库安装。手动下载二进制文件(arm64 和 x86_84),然后将其安装在各自的 EC2 实例(R6g 和 R5)上。按照此处提到的步骤安装 Memtier 基准测试工具。
以下命令中提到了执行 Memtier 测试的示例输入命令:
reads=5 --ratio=1:1 --key-pattern=R:R --key-minimum=16 --key -maximum=16 --data-size=128 --requests=10000 --run-count=20
R5 和 R6g 实例的 CPU 利用率指标
在执行基准测试时,我们使用 Grafana 可视化每个实例的每个内核的 CPU 利用率和总体 CPU 利用率指标。图 4 和图 5 显示了 R5 和 R6g 实例的利用率图表。
结论
在 AWS Graviton2 实例上部署 Memcached 可以提供 51% 的性能改进以及 20% 的成本效益。在 AWS Graviton2 上部署新应用程序简单快捷,无需任何复杂的迁移要求即可实现这些收益。有关开始使用 AWS Graviton2 的更多详细信息,请访问此github 页面。
如有任何与在 Arm Neoverse 平台上运行软件工作负载相关的问题,请随时通过sw-ecosystem@arm.com与我们联系。