在 OCI 基于 Ampere 处理器的云虚拟机上运行 Elasticsearch
Ampere® Altra® 处理器是为云原生应用构建的完整片上系统 (SOC) 解决方案。 Ampere Altra 最多可支持 80 个 aarch64 内核。除了提供大量高性能内核外,其创新架构还提供可预测的高性能、线性扩展和电源效率。
Oracle 云基础设施 (OCI) 以每核 0.01 美元的极具吸引力的价格提供 Ampere Altra 处理器的云服务,规格涵盖1-80 个 OCPU 和 1-64 GB 内存的灵活配置。OCI Ampere Altra A1 计算平台提供确定性的性能、线性可扩展性和市场上最佳性价比的安全架构。
Elasticsearch 是一个分布式、开放的搜索和分析引擎,适用于所有类型的数据,包括文本、数字、地理空间、结构化和非结构化数据。 Elasticsearch 由 Elastic 基于 Apache Lucene 构建。Elastic 添加了对 aarch64 上预构建二进制文件的支持,可以从 此处 下载该二进制文件。
Elasticsearch 是如何工作的?原始数据(例如地理空间数据、日志或 Web 数据)被插入到 Elasticsearch 中,然后对数据进行格式化、丰富并最终编制索引,以便对其进行最佳检索。一旦它在 Elasticsearch 中被索引,用户就可以对他们的数据运行复杂的查询,获得检索特定的数据摘要。面对现今海量数据,使用 Elasticsearch 优化索引和搜索对于访问有意义的数据至关重要。
在本工作负载简介中,我们将基于 Ampere Altra 的 OCI 实例与最新一代 Intel 和 AMD 实例上的 Elasticsearch 进行比较。
Ampere Altra Max 通过使用创新的架构设计、以一致的运行频率以及更能抵抗“相邻干扰”问题的单线程内核,为 Elasticsearch 等云原生应用提供卓越的性能,可以让工作负载在负载不断增加的情况下,以可预测的方式或最小的差异下运行。
Ampere处理器旨在提供卓越的电力效率,提供行业领先的性能/瓦特能力和更低的碳足迹。
云原生:Ampere Altra 处理器专为云客户而设计,非常适合 Elasticsearch 等云原生应用。
可扩展性:凭借创新的横向扩展架构,Ampere Altra 处理器具有高核心数和引人注目的单线程性能,以及所有核心的一致频率,可在插槽级别提供更高的性能。
高能效:行业领先的能效使 Ampere Altra 处理器能够达到具有竞争力的原始性能水平,同时消耗比竞争对手低得多的功率。
内存
外部连接
系统y
性能
我们使用 Rally(在此处下载)作为 Elasticsearch 基准测试的负载生成器。Rally 提供了几个场景,这些场景由不同数据集类型组成的不同基准测试场景,例如:http_logs - 由 HTTP 服务器日志数据组成,NYC 出租车 - 由 2015 年纽约的出租车乘车组成等。每个场景迎合不同的应用程序数据类型 ,选择正确的数据类型后,我们可以选择的挑战模式可以是仅追加,或者索引和追加。
我们建议使用 Elastic 为 aarch64 预构建的最新 Elasticsearch 版本。我们在 OCI(内核 5.4)上使用 Oracle Linux 7.9 和 Elasticsearch 7.17 进行测试。对于每个测试,我们使用类似的客户端机器作为 Elasticsearch 的负载生成器。
我们建议使用GCC(GNU 编译器)10.2 或其更新版本编译的最新 JDK,因为较新的编译器对aarch64 处理器上的代码优化帮助很大,性能将显著提升。对于此测试,我们使用 JDK 17,使用 GCC 10.2 编译。
我们在两种系统设置下进行了测试。 首先,我们比较了 Ampere Altra 上的单节点 Elasticsearch 服务、AMD Milan 和 Intel Icelake 在 OCI 上的 虚拟机。 其次,我们在 OCI 上比较了 Ampere Altra、AMD Milan 和 Intel Icelake 虚拟机上的 3 节点 Elasticsearch 集群。 对于单节点测试,我们对两种 VM 大小进行了测试,一种具有 2 个逻辑线程,一种具有 4 个逻辑线程。
在 2 个逻辑线程的测试中,虚拟机有 8GB RAM,其中 4GB 分配给 jvm。 在 4 个逻辑线程的测试中,虚拟机有 16GB RAM,其中 8GB 分配给 jvm。我们使用 G1GC 作为所有测试的垃圾收集器。IOPS 为 75,000 的块卷用于存储所有测试的数据。
这是我们的esrally测试命令行示例,这里我们测试的是 track pmc –
esrally race --track=pmc --target-hosts=
:9200 --pipeline=benchmark-only --challenge=append-no-conflicts-index-only
我们使用了几个场景来对 Elasticsearch 加压,每个场景都有它支持的不同数据集/数据类型。 以下是每个数据集的摘要 -
http_logs – contains HTTP server log data
PMC – is a full text benchmark comprising of academia papers from PubMed Central® (PMC)
Nested – contains nested documents from StackOverflow Q&A
Geonames – consists of points of interests from the Geonames geographical database
nyc_taxis – consists of Taxi rides in New York in the year 2015
每个测试运行 3 次,下面的报告中使用结果的中位数。
如图 1 所示,在具有 2 个逻辑线程的单节点 Elasticsearch 上,我们观察到 Ampere Altra 虚拟机的吞吐量比 AMD Milan 虚拟机高 43%,与 Intel Icelake 相比高 30%。
如图 2 所示,在具有 4 个逻辑线程的单节点 Elasticsearch 上,我们观察到 Ampere Altra 虚拟机的吞吐量比 AMD Milan 虚拟机高 43%,与 Intel Icelake 虚拟机相比高 25%。
我们还在一个 3 节点集群中测试了 Elastic 搜索服务。在图 3 中,我们观察到 Ampere Altra 虚拟机的吞吐量比 AMD Milan 虚拟机高 58%,比 Intel Icelake 虚拟机高 27%。
如今,许多云工作流程都使用了可扩展的搜索引擎。Elasticsearch 是一种流行且高效的搜索引擎,可用于横向扩展配置。 Ampere Altra 处理器旨在为 Elasticsearch 等云原生应用程序提供卓越的性能和能源效率。在 Ampere 的测试中,与市场上最好的 x86 处理器相比,Ampere Altra处理器展示了引人注目的性能和出色的能效。 有关此工作负载的更多信息,请访问 https://solutions.amperecomputing.com/。
此处包含的所有数据和信息仅供参考,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