作者:Jatinder Singh Hajer Bouafif Puneetha Kumara Manpreet Kour 发表日期:2024年7月11日
Amazon OpenSearch 服务推出了 OpenSearch 优化实例OR1,旨在改善现有实例的性价比。这些新推出的 OR1 实例特别适合于如日志分析和可观测性工作负载等重度索引用例。

OR1 实例采用本地和远程存储架构。本地存储使用 Amazon Elastic Block Store EBS,包括 gp3 或 io1 卷,而远程存储则使用 Amazon Simple Storage Service S3。有关 OR1 实例的更多细节,请参阅 Amazon OpenSearch 服务内幕:OpenSearch 优化实例OR1。
在本篇文章中,我们利用 OpenSearch Benchmark 工具进行了实验,以展示 OR1 实例家族在索引吞吐量及整体领域性能方面的提升。
OpenSearch Benchmark 是一款由 OpenSearch 项目 提供的工具,它全面收集 OpenSearch 集群的性能指标,包括索引吞吐量和搜索延迟。无论您是监测整体集群性能、做出升级决策,还是评估工作流变更的影响,这个工具都非常有用。
在本文中,我们比较了两个集群的性能:一个采用内存优化实例,另一个采用 OR1 实例。数据集包含了1998年世界杯网站的 HTTP 服务器日志。通过 OpenSearch Benchmark 工具,我们进行了多项性能指标的实验,比如索引吞吐量、搜索延迟和整体集群效率。目标是找出最适合特定工作负载要求的配置。
您可以直接在运行 Linux 或 macOS 的 主机上安装 OpenSearch Benchmark,也可以在任何兼容的主机上通过 Docker 容器 来运行 OpenSearch Benchmark。
OpenSearch Benchmark 包含了一组可以用于基准测试您集群性能的 工作负载。工作负载提供了一个或多个基准场景的描述,具体采用特定文档库对您的集群进行基准测试。文档库包括索引、数据文件和流执行时调用的操作。
在评估集群性能时,建议使用与您集群用例相似的工作负载,这样可以节省时间和精力。以下是确定最佳基准工作负载的一些标准:
用例 选择一个与您集群实际用例相符的工作负载至关重要。通过模拟重度搜索或索引任务,您可以找出性能问题并有效优化设置。因此,基准测试结果能够更接近实际绩效期望,为针对特定工作负载需求的优化决策提供更可靠的依据。数据 使用与生产工作负载相似的数据结构。OpenSearch Benchmark 在每个工作负载中提供了文档示例,以帮助您理解映射并与自己的数据进行比较。每个基准工作负载由以下 目录和文件 组成,供您比较数据类型和索引映射。查询类型 理解查询模式对于识别您集群中最常见的搜索查询类型至关重要。采用类似的查询模式进行基准测试实验非常重要。下图展示了 OpenSearch Benchmark 如何连接到您的 OpenSearch 域以运行工作负载基准测试!
工作流分为以下步骤:
执行 OpenSearch Benchmark,使用 工作负载库 中的特定工作负载。该操作收集关于 OpenSearch 集群性能的数据。OpenSearch Benchmark 将工作负载数据集导入到您的 OpenSearch 服务域中。OpenSearch Benchmark 运行一系列预定义的测试程序以捕获 OpenSearch 服务性能指标。当工作负载完成后,OpenSearch Benchmark 输出所有相关指标,以测量工作负载性能。指标记录默认存储在内存中,或者您可以设置 OpenSearch 服务域以存储生成的指标,并比较多个工作负载执行。在本文中,我们使用 httplogs 工作负载进行性能基准测试。数据集由 247 亿个文档组成,适用于导入,且包含一系列示例查询供基准测试使用。请按照 OpenSearch Benchmark 用户指南 中列出的步骤,部署 OpenSearch Benchmark 并运行 httplogs 工作负载。
您需要具备以下前提条件:
对 Python 编程语言的基本了解。有效的 OpenSearch 服务域。有关说明,请参见 创建和管理 Amazon OpenSearch 服务域。设置好的 Python 客户端,以部署 OpenSearch Benchmark 并与 OpenSearch 服务域交互。在本篇文章中,我们在 AWS Cloud9 主机上部署了 OpenSearch Benchmark,使用的是类型为 m6i2xlarge 的 Amazon Linux 2 实例,具有8个 vCPUs、32 GiB 内存和512 TiB 存储。
在本文中,我们对两种不同配置的 OpenSearch 服务进行了性能比较:
配置 1 三个内存优化的 r6glarge 实例作为数据节点和集群管理节点配置 2 三个 or1large 实例作为数据节点和集群管理节点在这两种配置中,集群管理节点的数量和类型相同:三个 c6gxlarge。
您可以使用 OpenSearch 服务中支持的实例类型 设置不同的配置以运行性能基准测试。
以下表格总结了我们的 OpenSearch 服务配置细节:
项配置 1配置 2集群管理节点数量33集群管理节点类型c6gxlargec6gxlarge数据节点数量33数据节点类型r6glargeor1large数据节点:EBS 卷大小 (GP3)200 GB200 GB启用多可用区和备用是是现在,让我们检查这两种配置的性能细节。
httplogs 数据集包含 1998 年世界杯网站 在1998年4月30日至7月26日之间的 HTTP 服务器日志。每个请求包含时间戳字段、客户端 ID、对象 ID、请求大小、方法、状态等。数据集的未压缩大小为 311 GB,包含 247 亿个 JSON 文档。两个域配置的负载相同。以下表格显示了在我们的两个配置上运行 OpenSearch 工作负载各个方面所需的时间。
类别指标名称配置 1 (3 r6glarge 数据节点) 运行时间配置 2 (3 or1large 数据节点) 运行时间性能差异索引主分片累计索引时间20793分钟14250分钟31索引主分片累计刷新时间2117分钟231分钟89垃圾回收年轻代 GC 总时间4314秒2457秒43bulkindexappendp99 延迟108572 毫秒245512 毫秒77queryMean 吞吐量2976 ops/sec3624 ops/sec22querymatchall(default)p99 延迟4075 毫秒3299 毫秒19querytermp99 延迟767554 毫秒418319 毫秒45queryrangep99 延迟595316 毫秒512864 毫秒14queryhourlyaggregationp99 延迟530846 毫秒298518 毫秒44querymultitermaggregationp99 延迟85064 毫秒426444 毫秒50基准测试结果显示,各种性能指标都有显著提升。特别是,OR1large 数据节点在主分片的索引时间方面比 r6glarge 数据节点减少了31。OR1large 数据节点在垃圾回收效率上也表现出 43 的提高,同时在查询性能方面,包括预测、范围和聚合查询,也有显著改善。
改进的程度取决于工作负载,因此请务必根据您的生产环境运行 自定义工作负载,以期在索引吞吐量、搜索查询类型和并发请求方面达到预期效果。
OR1 实例系列在 OpenSearch 服务 211 或更高版本中可用。通常,如果您正在使用 OpenSearch 服务并希望利用特定版本中新发布的功能,您需要遵循 支持的升级路径 来升级您的域。
然而,要使用 OR1 实例类型,您需要创建一个新的域,并在该域中使用 OR1 实例,然后将现有域迁移到新域。向使用 OR1 实例的 OpenSearch 服务域迁移的过程与典型的 OpenSearch 服务迁移场景相似。关键在于选择合适的目标环境大小、选择合适的数据迁移方法和制定无缝的切换策略。这些元素能够确保最佳性能,实现平滑的数据迁移,并在整个迁移过程中最小化干扰。
要将数据迁移到新的 OR1 域,可以使用 快照还原 选项,或者使用 Amazon OpenSearch 采集 迁移源数据。
有关迁移的说明,请参阅 迁移到 Amazon OpenSearch 服务。
ios苹果加速器为了避免产生持续的 AWS 使用费用,请确保删除您在本文中创建的所有资源,包括 OpenSearch 服务域。
在本文中,我们进行了基准测试,以回顾 OR1 实例系列的性能,比较了内存优化的 r6g 实例。我们使用了 OpenSearch Benchmark 这一全面工具,以收集 OpenSearch 集群的性能指标。
您可以进一步了解 OR1 实例的工作原理,并利用 OpenSearch Benchmark 进行实验,以确保您的 OpenSearch 服务配置能够满足工作负载需求。
全国咨询热线
轻云加速器【官网入口】|轻云加速器
联系电话:13594780017
联系人:李总
邮箱:ascorbic@icloud.com
公司地址:芜湖市闪欲峡谷14号
微信扫一扫
手机官网