Ampere Computing Logo
Contact Sales
Ampere Computing Logo
Cloud Native Solutions

DeathStarBench 社交网络应用在OCI上部署简介

DeathStarBench 是一个开源基准测试套件

AMPERE—赋能未来

Oracle 云基础设施 (OCI) 在新的云原生 Ampere A1 平台上提供 Ampere® Altra® 计算实例。Ampere A1 平台可以部署为裸机服务器或灵活的虚拟机形态,让客户可以完全控制他们的整个云堆栈。Ampere A1 VM 形态提供 1-80 个 Oracle CPU (OCPU) 和每个内核 1-64 GB 内存的灵活配置,确定性性能、线性可扩展性和市场上具有最佳性价比的安全架构等。

像 OCI Ampere A1 这样的云计算实例被广泛用于部署通过 Internet 提供托管内容的 Web 服务。Web 服务由离散的、可重用的组件组成,这些组件称为微服务,可以轻松集成到任何云环境中。容器化微服务用于为 Web 服务构建分布式应用程序,这些应用程序具有容错能力,并且可以比单体应用程序更有效地进行横向扩展。 源于架构的可预测性和高度可扩展性,Ampere Altra 处理器是部署此类云原生应用程序的完美选择。

在本解决方案简介中,我们使用能代表真实世界,基于微服务的应用程序套件,比较了在 OCI 计算实例上模拟 Twitter 或 Facebook 等社交网络服务的 Web 服务的性能。我们使用了康奈尔大学开发的开源应用程序套件 DeathStarBench 来研究模拟社交网络服务的性能。将 OCI Ampere A1 计算平台与配置类似的 AMD 和 Intel OCI 计算实例进行比较。

有关 DeathStarBench 套件的更多信息,请参见 “[An Open-Source Benchmark Suite for Microservices and their hardware-software Implications for Cloud and Edge Systems](chrome-extension://efaidnbmnnnibpcajpcglclefindmkaj/https://www.csl.cornell. edu/~delimitrou/papers/2019.asplos.microservices.pdf)”,Y. Gan et al.,ASPLOS 2019。

在 OCI Ampere A1 Flex VM上部署DeathStarBench

DeathStarBench 社交网络应用程序是一种端到端服务,它实现了具有单向关注关系的广播式社交网络。 用户(客户端)通过 http 发送请求,这些请求首先到达 NGINX 负载均衡器。用户可以创建嵌入文本、媒体、链接和标签的帖子给其他用户。然后将他们的帖子广播给他们的关注者。 该服务的后端使用 Redis 和 Memcached 进行缓存,使用 MongoDB 持久存储帖子、配置文件、媒体和推荐。许多微服务是用 C++ 和 Python 编写的。

基准套件附带了一个基于 WRK 的修改后的工作负载生成器 WRK2。WRK2 使用 LuaJIT 脚本来执行 HTTP 请求生成、响应处理和自定义报告。

在 AMPERE ALTRA MAX 处理器上运行DEATHSTARBENCH的收益
  • 可扩展性:Ampere Altra 处理器专为云客户而设计,非常适合云原生使用,例如部署 Web 服务,这些服务在预定义 SLA 下的最高吞吐量的 性能可以达到其他竞品平台的 2 倍。

  • 可预测性能:Ampere 处理器上的高内核数量以及引人注目的单线程性能,加上所有内核上的一致频率,帮助在 OCI 上使用 Ampere A1 计算实例的 Web 服务在延迟方面提供超过 4 倍的优势。

  • 高能效:行业领先的能源效率使 Ampere Altra 形状能够达到具有竞争力的原始性能水平,同时消耗比竞争对手低得多的功率,继而进一步低基于 Ampere 处理器的计算实例的成本。

OCPU 是什么
  • Oracle CPU (OCPU) 是 OCI 中分配给 VM 的处理器数量的计量单位。它与 vCPU 行业标准不同,在 此处 进行了详细解释。

  • X86 系统上的一个 OCPU 相当于两个 vCPU:主 CPU 内核及其相关的对称多处理 (SMP) 单元

  • Ampere A1 系统上的一个 OCPU 相当于一个 vCPU:它一个实实在在的 CPU 物理内核,因为 Ampere 系统具有专用内核并且不使用 SMP 或超线程。

VM.Ampere.A1.Flex

系统

  • 1-80 Ampere® Altra® 内核,可灵活扩展

内存

  • 1GB 到 512GB DRAM

连接性

  • 1-40Gb Ethernet

  • VNIC 可选配置,最高可到24个 VNIC

块存储

  • 启动卷可定制,最高到32 TB
Benchmarking Configuration

DeathStarBench 套件带有在 Kubernetes 集群上部署社交网络系统用的 helm 图表。 默认配置使用来自 Docker Hub 的预编译 x86 映像。第一步是为 aarch64 重建镜像并更新 helm 图表值以使用新的镜像标签和名称。构建镜像后,它们会被上传到 OCI 容器注册表。下一步是使用所需的计算实例、CPU 数量、内存和启动卷大小来部署 OCI Kubernetes 集群。

VM.Standard3.FlexVM.Standard.E4.FlexVM.Standard.A1.Flex
OCPU161632
Cores/Threads16/3216/3232/32
Memory128G128G128G
Network b/w16 Gbps16 Gbps32 Gbps
Archx86_64x86_64aarch64
KernelOracle Linux 8.5 Oracle Linux 8.5 Oracle Linux 8.5
Kubernetes Versionv1.21.5v1.21.5v1.21.5

WRK2 负载生成器在与社交网络 Kubernetes 集群相同的区域/可用性域中,单独的OCI VM 实例上运行。将Kubernetes 集群和客户端 VM 实例配置为使用共享虚拟云网络中的同一子网,以便客户端可以通过内部 IP 地址访问集群。OKE 集群使用 Kubernetes v1.21.5 和 Oracle-Linux-8.5。我们对三个 OCI 实例做了比较:

  • VM.Standard.A1.Flex (Ampere Altra Q80-30)
  • VM.Standard.E4.Flex (AMD EPYC 7J13)
  • VM.Standard3.Flex (Intel Xeon Platinum 8358)

对于每个 Kubernetes 集群,使用了一个具有 128 GB 内存的 32 个 vCPU 节点。 由于 x86 系统上的单个 OCPU 相当于 2 个 vCPU,因此基准测试配置在 Ampere A1 VM上使用 32 OCPU,在x86 系统上是16 OCPU VM

compose-post 工作负载用于模拟连接到社交网络应用和创建帖子的客户端。 每个测试配置成运行 5 分钟,使用 100 个线程和分布在线程中的 1000 个总连接。 通过增加每秒请求数 (RPS) 逐渐扩大服务负载,从 RPS=1000 开始,然后在每次运行后测量 P99 延迟和吞吐量。每个测试运行 5 次以确保最小的运行间差异。 测试结果采用 5 次运行中最高的 P99 延迟。

由于此测试中要模拟端到端客户端请求,因此在指定的服务水平协议 (SLA) 下测量吞吐量跟具有现实意义。这里选择 2 秒的 99 个百分位延迟 (p.99) 作为被测系统的 SLA 上限,即要确保 99% 的请求的响应时间为 2 秒或更短。

DeathStarBench 的 GitHub 存储库以及许可信息位于http://microservices.ece.cornell.edu/

基准测试结果
Fig 1. P99 Latency @RPS=2000 (Lower is Better)
Fig 2. Max Throughput Under SLA (SLA = p.99<2secs)
Response times (latency) distribution for a single test run @RPS=2000

性能价值——性能和价格的综合优势


OCPU ShapePrice/OCPU*Total Price/HourPrice AdvantagePerformance Advantage (P99 Latency)Performance Value (P99 Latency)Performance Advantage (Throughput)Performance Value (Throughput)
Intel Standard3.Flex (Xeon 8358)$0.04$0.04 * 1611.001.0011.00
AMD E4.Flex (EPYC 7J13)$0.025$0.025 * 161.60.931.5011.60
Ampere A1.Flex (Q80-30)$0.01$0.01 * 3222.144.281.12.20
基准测试结论

如图 1 所示,使用 OCI Ampere A1 实例上的社交网络应用程序,连接到 Web 服务的客户端接收响应速度是 X86 实例的两倍。该响应时间是在定义的 SLA ( P99 延迟)允许的最大吞吐量(每秒请求数)下测得。结果表明,Ampere A1 是为 Intel Standard3 和 AMD E4 实例测量的延迟的一半。

在比较吞吐量时,以在 p.99 延迟小于 2 秒的 SLA 下交付的最高每秒请求数 (RPS) 进行比较,图 2 显示 Ampere A1 实例每秒可以处理 10% 以上的请求,同时保持每个请求的响应时间为 2秒 ,与 x86 实例相比甚至更少。

Figure 3 shows the distribution of latencies for all responses in a single test run @RPS=2000, on each of the compute shapes under test. This load was selected to examine the behavior of the system under test while running a higher stress level without exceeding the chosen SLA of 2 second response time. Under this load the standard deviation for latencies on the Ampere A1 instance is half of the standard deviation for latencies on the X86 instances. In addition, the mean of all response times was both higher in total responses(peak) as well as up to 3x lower in average response time! This graph shows the much more stable and predictable nature of the response on Ampere A1 instance for all requests This is a critical finding for any cloud native workload and especially the microservice based applications tested here. This predictable profile is what makes Ampere Altra family processors truly remarkable for Web tier services like the social media simulation built with DeathStarBench.

图 3 显示了在每个被测计算实例上,单个测试运行 @RPS=2000 中所有响应的延迟分布。选择这种方式是为了在同时运行更高的压力,而不会超过所选的 2 秒响应时间的 SLA情况下,观测被测系统的行为。此时,Ampere A1 实例的延迟标准偏差是 X86 实例延迟标准偏差的一半。此外,所有响应时间的平均值在总响应(峰值)中均较高,而平均响应时间则降低了 3 倍! 此图显示了 Ampere A1 实例对所有请求的响应更加稳定和可预测的性质,这对于任何云原生工作负载,尤其是此处测试的基于微服务的应用程序来说都是一个关键发现。这种可预测的属性使 Ampere Altra 系列处理器在 Web 层服务(如使用 DeathStarBench 构建的社交媒体模拟)方面着实引人瞩目。

总之,Ampere 实例的性能优势与 Oracle 云提供的价格优势相结合,在将 Ampere A1 计算实例用于 Web 服务或类似 SaaS 应用程序的云部署时提供了更高的价值。 根据响应时间以及提供的最大吞吐量,Ampere A1 实例的性价比是 AMD 和 Intel 最接近的竞争产品的 4.3 倍。

脚注

此处包含的所有数据和信息仅供参考,Ampere 保留更改它的权利,恕不另行通知。本文档可能包含技术错误、遗漏和印刷错误,Ampere 没有义务更新或更正此信息。 Ampere 不作任何形式的陈述或保证,包括但不限于对不侵权、适销性或适用于特定目的的明示或暗示保证,并且不承担任何形式的责任。所有信息均“按原样”提供。本文件不是 Ampere 的要约或具有约束力的承诺。使用此处设想的产品需要随后的谈判和最终协议的执行,或者受 Ampere 的商品销售条款和条件的约束。

与 Ampere 测试中使用的不同的系统配置、组件、软件版本和测试环境可能会导致与 Ampere 获得的测量结果不同。

©2022 Ampere Computing 版权所有。Ampere、Ampere Computing、Altra 和“A”标志都是 Ampere Computing 的注册商标或商标。 Arm 是 Arm Limited(或其子公司)的注册商标。本出版物中使用的所有其他产品名称仅用于识别目的,可能是其各自公司的商标。

Ampere Computing® / 4655 Great America Parkway, Suite 601 / Santa Clara, CA 95054 / amperecomputing.com

Created At : August 26th 2022, 5:51:35 am
Last Updated At : July 30th 2024, 10:01:30 pm
Ampere Logo

Ampere Computing

4655 Great America Parkway

Suite 601 Santa Clara, CA 95054

image
image
 |  |  |  |  | 
© 2022 Ampere Computing LLC. All rights reserved. Ampere, Altra and the A and Ampere logos are registered trademarks or trademarks of Ampere Computing.
This site runs on Ampere Processors.