本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
Amazon OpenSearch Service 中的专用协调器节点
Amazon OpenSearch Service 中的专用协调器节点是专门用于从数据节点卸载协调任务的专用节点。这些任务包括管理搜索请求以及托管 OpenSearch 控制面板。通过分离这些功能,专用协调器节点可减少数据节点的负载,使其能够专注于数据存储、索引和搜索操作。这将提升集群的整体性能和资源利用率。
此外,专用协调器节点有助于减少 VPC 配置所需的私有 IP 地址数量,以提高网络管理效率。此设置可使索引吞吐量提升高达 15%,查询性能提升 20%,具体取决于工作负载特征。
何时使用专用协调器节点
专用协调器节点在以下场景最为有效。
-
大型集群:在数据量庞大或查询复杂的环境中,将协调任务卸载至专用节点可提升集群性能。
-
高频查询:涉及频繁搜索查询或聚合的工作负载,尤其是包含复杂日期直方图或多个聚合的工作负载,可受益于更快的查询处理。
-
大量使用控制面板:OpenSearch 控制面板可能消耗大量资源。将此责任移交至专用协调器节点,可减轻数据节点的负担。
架构和行为
在 OpenSearch 集群中,专用协调器节点负责两大关键职责。
-
请求处理:这些节点接收传入的搜索请求,并将其转发到存储相关数据的相应数据节点。然后,这些节点将多个数据节点的结果整合为单一的全局结果集,并将其返回给客户端。
-
控制面板托管:协调器节点管理 OpenSearch 控制面板,从而减轻数据节点托管 OpenSearch 控制面板和处理相关流量的额外负担。
在 VPC 域中,弹性网络接口(ENI)分配给专用协调器节点,而非数据节点。此配置有助于减少 VPC 所需的私有 IP 地址数量,从而提升网络效率。通常情况下,专用协调器节点数约占总数据节点数的 10%。
要求和限制
专用协调器节点具有以下要求和限制。
-
专用协调器节点支持所有 OpenSearch 版本和 Elasticsearch 版本 6.8 至 7.10。
-
要启用专用协调器节点,您的域必须已启用专用主节点。有关更多信息,请参阅 Amazon OpenSearch 服务中的专用主节点。
-
预置专用协调器节点可能会产生额外费用。然而,资源效率的提升和性能的增强证明这项投资的合理性,尤其对于大型或复杂的集群而言。
预置专用协调器节点
执行以下步骤,在现有域中配置专用协调器节点。在配置协调器节点之前,确保您的域已启用专用主节点。
在 AWS 管理控制台 中预置专用协调器节点
-
登录到位于 https://console.aws.amazon.com/aos/home
的 Amazon OpenSearch Service 控制台。 -
选择域,然后选择要修改的域。
-
在集群配置部分,选择编辑。
-
选择启用专用协调器节点。
-
选择要预置的协调器节点的实例类型和数量。
-
选择保存更改。域更新可能需要几分钟时间。
要使用 AWS CLI 预置专用协调器节点,请使用 update-domain-config 命令。以下示例在域中预置三个 r6g.large.search 协调器节点。
aws opensearch update-domain-config \ --domain-namemy-opensearch-domain\ --cluster-config InstanceCount=3,InstanceType=r6g.large.search,DedicatedCoordinatorCount=3,ZoneAwarenessEnabled=true,DedicatedCoordinatorEnabled=true
此命令启用专用协调器节点,设置协调器节点的实例类型和数量,并启用区域感知,以提高可用性。
最佳实践
使用专用协调器节点时,考虑以下最佳实践。
-
大多数使用案例都应使用通用实例。通用实例在成本和性能之间取得平衡。内存优化型实例适用于需要大量内存资源的工作负载,例如涉及复杂聚合操作或大规模搜索的场景。
-
良好的起点是预置的专用协调器节点数为数据节点数的 5% 至 10%。例如,如果您的域有 90 个特定实例类型的数据节点,请考虑预置 5 到 9 个相同实例类型的协调器节点。
注意
实例类型可用性因区域而异。为协调器节点选择实例类型时,确认所选实例类型在目标区域可用。创建或修改域时,可在 OpenSearch Service 控制台中查看实例类型的可用性。
-
为最大限度降低单点故障的风险,请预置至少两个专用协调器节点。这确保即使一个节点出现故障,您的集群仍能保持运行状态。
-
如果使用跨区域搜索,需在目标域中预置专用协调器节点。源域通常不处理协调任务。
-
对于索引密集型环境,建议选用与数据节点实例规格匹配的 CPU 优化型实例,以实现最佳性能。
-
对于内存密集型工作负载,为专用协调器节点选用稍大的实例类型,以帮助管理增加的内存需求。
-
追踪
CoordinatorCPUUtilizationAmazon CloudWatch 指标。如果该指标持续超过 80%,则可能表明您需要更大或更多的协调器节点以处理负载。 -
调整专用协调器节点的大小,以匹配您的数据节点。例如,使用 4xlarge 数据节点时,应从 4xlarge 通用协调器节点开始。
-
对于协调器节点,请使用多个较小实例而非少数较大实例,除非您的单个请求或响应需要极高的内存(以 GB 为单位)。例如,选择 12 个 4xl 实例,而非 6 个 8xlarge 通用实例。
按集群大小划分的节点推荐
请根据集群规模,将以下指南作为预置专用协调器节点的起点。根据工作负载特征和性能指标调整节点数量及类型。
| 集群大小 | 推荐的协调器节点数 | 实例类型 |
|---|---|---|
|
小型(最多 50 个节点) |
3-5 个节点 | 通用型 |
|
中型(50-100 个节点) |
5-9 个节点 | 内存优化型 |
|
大型(超过 100 个节点) |
10-15 个节点 | 内存优化型 |