Amazon Elasticsearch Service 的自动调整 - Amazon Elasticsearch Service
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 Amazon Web Services 服务入门

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

Amazon Elasticsearch Service 的自动调整

Amazon Elasticsearch 服务中的自动调整 (Amazon ES) 使用您的 Elasticsearch 集群中的性能和使用情况指标建议与内存相关的配置更改,包括节点上的队列和缓存大小以及 Java 虚拟机 (JVM) 设置。这些可选更改可提高群集速度和稳定性。

有些更改会立即部署,而其他更改则需要您安排维护时段。您可以随时恢复到默认 Amazon ES 设置。

随着自动调整收集和分析您的域的性能指标,您可以在通知页.

自动调整在运行 Elasticsearch 6.7 或更高版本的域上的商业区域中可用支持的实例类型

更改类型

自动调整有两大类更改:

根据您域的性能指标,“自动调整” 可以建议对以下设置进行调整:

更改类型 类别 描述

JVM 堆大小

蓝/绿

默认情况下,Amazon ES 将实例的 RAM 的 50% 用于 JVM 堆,最大堆大小为 32 GiB。

增加此百分比可以给 Elasticsearch 更多的内存,但为操作系统和其他进程留下的内存较少。较大的值可以减少垃圾回收暂停的数量,但会增加这些暂停的长度。

JVM 年轻一代设置

蓝/绿

JVM “年轻一代” 设置会影响次要垃圾收集的频率。更频繁的次要集合可以减少主要馆藏和暂停的数量。

队列大小

无中断

默认情况下,搜索队列大小为1000,写入队列大小为10000。如果有其他堆可用于处理请求,则自动调整会自动缩放搜索和写入队列。

缓存大小

无中断

这些区域有:字段缓存监控堆上的数据结构,因此监控缓存的使用非常重要。自动调整可调整字段数据高速缓存大小,以避免内存不足和断路器问题。

这些区域有:分片请求缓存在节点级别进行管理,并且默认的最大大小为堆的 1%。自动调整可扩展分片请求高速缓存大小,以接受比配置的集群能够处理的更多搜索和索引请求。

如果在未设置维护时段的情况下启用 “自动调整”,则 “自动调整” 仅应用无中断更改。随着时间的推移,性能优势通常较小,但您可以避免与蓝/绿部署相关的开销。

有关配置维护时段的指导,请参阅计划更改

启用或禁用自动调整

默认情况下,Amazon ES 会在新域上启用自动调整功能。要在现有域上启用或禁用 “自动调整”,我们建议使用控制台,这大大简化了过程。在控制台中,选择您的域并编辑域,然后在自动调整部分。启用 “自动调整” 不会导致蓝/绿部署。

Amazon CLI

使用Amazon CLI,配置auto-tune-options参数。以下示例命令在具有维护计划的现有域上启用自动调整,该计划在每天下午 12:00 UTC 重复:

aws es update-elasticsearch-domain-config \ --domain-name mylogs \ --auto-tune-options '{"DesiredState": "ENABLED","MaintenanceSchedules":[{"StartAt":"2021-12-19","Duration":{"Value":2,"Unit":"HOURS"},"CronExpressionForRecurrence": "cron(0 12 * * ? *)"}]}'

配置 API

使用配置 API,配置AutoTuneOptions设置:

POST https://es.us-east-1.amazonaws.com/2015-01-01/es/domain/domain-name/config { "AutoTuneOptions": { "DesiredState": "ENABLED", "MaintenanceSchedules": [{ "StartAt": 4104152288000, "Duration": { "Value": 2, "Unit": "HOURS" }, "CronExpressionForRecurrence": "cron(0 12 * * ? *)" }] } }

计划更改

要应用需要蓝色/绿色部署的更改,您可以为您的域安排一个维护时段,例如,星期五上午 6:00 至 9:00 之间。我们建议为低流量时间安排维护时段。

  • 要在部署之前查看所有更改,请等待自动调整通知您建议的优化。然后安排一次性维护窗口以部署更改。

  • 要获得更自动化的体验,请设置每周维护时段(例如每周六凌晨 2:00),或使用自定义Cron 表达式了解更复杂的时间表。

要在控制台中安排更改,请选择您的域,选择自动调整选项卡上,选择修改,然后选择提交。此选项卡还显示您当前的维护时段,以及自动调整是否会在下一个窗口中进行任何更改。

Cron 表达式

自动调整的 Cron 表达式使用与Amazon CloudWatch Events

minute hour day-of-month month day-of-week year

例如,以下表达式转换为 “从 2021 年到 2024 年的每个星期二和星期五凌晨 1:15”:

15 1 ? * 2,5 2021-2024

下表包括每个字段的有效值。

字段 有效值

分钟

0-59

小时

0—23

日期

1—31

1 月 1 日至 12 日或 1 月、2 月、3 月、4 月、5 月、6 月、7 月、8 月、9 月、10 月、11 月、12 月

星期几

1-7 或以下任一值:“SUN”、“MON”、“WED”、“THU”、“FRI”、“SAT”

年份

1970-2199

月中的某一天和星期的重叠,因此您可以指定一个,但不能同时指定两个。您必须将另一个标记为?。有关通配符选项的完整摘要,请参阅Amazon CloudWatch Events 用户指南