管理亚马逊 OpenSearch Service 域中的亚马逊 EBS 容量吞吐量限制

在这篇博客文章中,我们讨论了 亚马逊弹性区块存储 (Amazon EBS) 的容量 IOPS 和吞吐量限制对亚马 逊 OpenSearch Serv ice 域的影响,以及如何预防/缓解吞吐量限制情况。

Amazon OpenSearch Service 是一项托管服务,可让您轻松执行网站搜索、交互式日志分析、实时应用程序监控等。基于开源 OpenSearch 套件,亚马逊 OpenSearch Service 允许您搜索、可视化和分析高达 PB 的文本和非结构化数据。

OpenSearch 服务域主要包含具有以下角色集的节点。

  • 集群管理器(专用主节点): 负责管理集群并检查集群中数据节点的运行状况。
  • 数据:负责提供搜索和索引请求并存储索引数据。
  • Ultrawarm :使用亚马逊 S3 作为后备存储以提供低成本存储的节点。

创建 OpenSearch 服务域时,您可以为具有本地 非易失性存储器 (NVMe) 或 Amazon E BS 卷的数据节点选择存储。

如果 OpenSearch 服务数据节点存储由 Amazon EBS 卷支持,则视您的工作负载而定,EBS 吞吐量可能会严重影响 OpenSearch 服务域的性能。EBS 卷性能指标由以下两个关键参数定义。

  • IOPS 定义每秒执行的 IO 操作数。
  • 吞吐 量 是衡量在给定时间内可以传输多少数据的指标。它通常以每秒字节数来衡量。

每当数据节点的 IOPS 或吞吐量超过数据节点的 EBS 容量或 EC2 实例的最大允许限制时,OpenSearch 服务域就会出现 IOPS 或吞吐量限制。这可能导致较高的搜索和索引延迟,在最坏的情况下还会导致节点崩溃。

数据节点允许的最大 IOPS 和吞吐量

OpenSearch 服务域中 IOPS 的最大允许值或数据节点的吞吐量是以下两个值中的最小值。

  • 允许的最大 IOPS 或数据节点 使用的 Amazon EBS 卷 的吞吐量值。
  • 允许的最大 IOPS 或数据节点的 EBS 优化实例 类型的吞吐量值。

吞吐量限制及其对亚马逊 OpenSearch Service 域的影响

当数据节点上的 EBS 总吞吐量超过 OpenSearch Service 域中该数据节点的最大允许吞吐量值时,就会发生吞吐量限制。

可以在亚马逊 CloudWatch 控制台的以下位置查看域或节点的 ThroughputThrottle 指标。

  • 域名: “es/OpenSearchService > 每个域、每个客户端的指标
  • 节点: “es/openSearchService > 客户端 ID、域名、节点 ID

吞吐量限制指标中的值为 1 表示域或节点发生了限制事件。

如果域中的数据节点持续受到吞吐量限制,则可能导致该数据节点出现以下性能下降。

  • EBS 音量性能较慢。
  • 读/写延迟高。

这可能会影响集群管理器或数据节点执行的检查。它可能导致:

  • 数据节点执行的 FS(文件系统)运行状况检查失败。
  • 由于请求延迟过长,集群管理器执行关注者检查失败。

这将导致集群管理器将此类数据节点标记为不正常,从而导致该数据节点从集群中移除。这可能会导致群集状态变为黄色或红色。

吞吐量值计算

数据节点的总吞吐量是每秒读取和写入 EBS 卷的总字节数。以下指标提供了 Amazon Opensearch 服务域中数据节点的读取和写入吞吐量。

  • readThroughputMicroBursting 考虑微突 发时 EBS 卷上读取操作的吞吐量(以字节每秒为单位)
  • writeThroughputMicroBursting 考虑微突 发时 EBS 卷上写入操作的吞吐量(以字节每秒为单位)

OpenSearch 服务域中数据节点的总吞吐量按以下方式计算。

吞吐量 = 读取吞吐量微突发 + 写入吞吐量微突发

要获得数据节点的总吞吐量,请执行以下步骤。

  1. 转到亚马逊 Cloudwatch 指标。
  2. 前往 es/openSearchService > 客户端 ID、域名、节点 ID
  3. 选择 “ 读取吞吐量微爆发” 和 “写入吞吐量微爆发 ” 指标。
  4. 转到 图表化指标 。
  5. 使用 “添加数学运算” 并创建公式来对 readThroughputMicrobursting 和 WriteThroughputMicroBursting

处理吞吐量限制

当 OpenSearch 服务域中的数据节点上突破允许的最大吞吐量限制时,会向 A WS 控制台发送磁盘吞吐量限制 通知。数据节点上的吞吐量限制可能是由于各种原因造成的,例如以下原因。

  • OpenSearch 服务域的数据节点 的 索引速率 或 搜索率 突然增加。
  • 在高峰时段,OpenSearch 服务域上发生的 蓝/绿 事件。
  • OpenSearch 服务域规模不足。

我们建议采取以下措施来防止 OpenSearch 服务域的吞吐量限制。

  • 监控发往 OpenSearch 服务域的流量,并针对发送到 OpenSearch 服务域的搜索和索引流量创建警报。
  • 为 OpenSearch Service 域设置 非高峰时 段 ,以便在需求减少时执行导致 蓝/绿 部署的更新。
  • 监控 OpenSearch 服务域的 吞吐量限制 集群指标。
  • 监控 Open Se arch 服务域 的分片偏度 。分片偏度可能导致数据节点的流量负载分布不均匀,并可能导致集群中的热节点,这些节点可能会遇到高索引和搜索流量,从而导致节流。
  • 如果您达到数据节点的 EBS 卷或 EC2 实例吞吐量限制,则需要扩展 OpenSearch 服务域以避免吞吐量限制。检查数据节点使用的 EBS 卷 Amazon EBS 优化 实例提供的限制,并相应地向上扩展 OpenSearch 集群。

每种情况都需要具体的调查和适当的措施来解决。尽管如此,我们仍建议将以下准则作为处理吞吐量限制的更广泛方法的一部分。

  • 如果大多数时候在一组特定的数据节点上出现高吞吐量,则分片偏度可能会导致节点变热。在这种情况下,解决分片偏度会有所帮助。
  • 如果 OpenSearch Service 域遇到不均衡的流量模式,请检查是否突然出现突发流量导致了限制。在这种情况下,简化流量模式可能会有所帮助。
  • 如果集群中大多数具有一致流量模式的节点都出现吞吐量限制,则应考虑扩展 OpenSearch Service 域。

结论

在这篇文章中,我们介绍了 OpenSearch 服务域中的 Amazon EBS 吞吐量限制、其影响以及监控和处理它的方法。我们提供了可用于处理此类 限制 情况的建议。

相关链接

  • 亚马逊开放搜索
  • 亚马逊云观察
  • 亚马逊 EBS
  • 亚马逊 EC2

作者简介

Pranit Kumar 是一名高级软件开发工程师,在亚马逊网络服务部工作 OpenSearch。他对分布式系统和解决复杂问题感兴趣。

Dhrubajyoti Das 是一名工程经理,在亚马逊网络服务部工作 OpenSearch。他对高可扩展系统和基础设施相关挑战深感兴趣。


*前述特定亚马逊云科技生成式人工智能相关的服务仅在亚马逊云科技海外区域可用,亚马逊云科技中国仅为帮助您发展海外业务和/或了解行业前沿技术选择推荐该服务。