本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
目标跟踪扩缩策略
使用目标跟踪扩展策略,您可以选择指标并设置目标值。 ElastiCache 对于 Valkey 和 Redis OSS,Auto Scaling 创建和管理 CloudWatch 触发扩展策略并根据指标和目标值计算扩展调整的警报。扩展策略根据需要添加或删除分区,以便将指标保持在指定的目标值或接近该值。除了将指标保持在目标值附近以外,目标跟踪扩展策略还会根据由于负载模式波动而造成的指标波动进行调节,并最大限度减少队列容量发生快速波动的情况。
例如,考虑使用具有已配置了目标值的预定义平均 ElastiCachePrimaryEngineCPUUtilization 指标的扩展策略。这种策略可以将 CPU 使用率保持在指定的目标值或接近该值。
预定义指标
预定义指标是指特定名称、维度和统计数据的结构 (average) 给定的 CloudWatch 公制。自动扩缩策略为您的集群定义下面的预定义指标之一:
| 预定义指标名称 | CloudWatch 指标名称 | CloudWatch 指标维度 | 不符合条件的实例类型 |
|---|---|---|---|
ElastiCachePrimaryEngineCPUUtilization |
|
ReplicationGroupId,角色 = 主要 |
无 |
ElastiCacheDatabaseCapacityUsageCountedForEvictPercentage |
|
Valkey 或 Redis OSS 复制组指标 |
无 |
ElastiCacheDatabaseMemoryUsageCountedForEvictPercentage |
|
Valkey 或 Redis OSS 复制组指标 |
r6gd、r7gD、r8gD |
Data-tiered 实例类型无法使用 ElastiCacheDatabaseMemoryUsageCountedForEvictPercentage,因为这些实例类型将数据存储在内存和 SSD 中。数据分层实例的预期使用案例是 100% 的内存使用率,并根据需要填满 SSD。
分区的弹性伸缩条件
当该服务检测到您的预定义指标等于或大于目标设置时,它将自动增加您的分片容量。 ElastiCache 对于 Valkey 和 Redis OSS,按等于两个数字中较大值的数量来扩展您的集群分区:与 Target 的变异百分比和当前分片的 20%。为了缩小规模, ElastiCache 除非总体指标值低于定义目标的 75%,否则不会自动缩小。
关于横向扩展示例,如果您的分区数为 50,以及
-
如果你的目标漏洞达到 30%, ElastiCache 向外扩展 30%,这意味着每个集群有 65 个分片。
-
如果你的目标漏洞达到 10%, ElastiCache 默认情况下向外扩展最小值为 20%,这意味着每个集群有 60 个分片。
以缩小为例,如果您选择的目标值为 60%, ElastiCache 在指标小于或等于 45%(比目标 60% 低25%)之前,不会自动缩小规模。
弹性伸缩注意事项
请注意以下事项:
-
目标跟踪扩展策略假设它应该在指定指标高于目标值时执行横向扩展。当指定指标低于目标值时,您不能使用目标跟踪扩展策略进行横向扩展。 ElastiCache 对于 Valkey 和 Redis,OSS 将分区扩展到与集群中现有分片目标相差至少 20%。
-
当指定指标数据不足时,目标跟踪扩展策略不会执行扩展。它不会执行横向缩减,因为它不会将数据不足解读为使用率低。
-
您可能会看到目标值与实际指标数据点之间存在差距。这是因为 ElastiCache Auto Scaling 在确定要添加或移除的容量时始终采取保守的方式,向上或向下舍入。以免添加的容量不足或删除的容量过多。
-
为了确保应用程序可用性,服务会针对指标尽快按比例横向扩展,但横向缩减过程相对缓慢。
-
您可以为... 制定多个目标跟踪扩展策略 ElastiCache 适用于 Valkey 和 Redis OSS 集群,前提是它们各自使用不同的指标。的意图 ElastiCache Auto Scaling 始终优先考虑可用性,因此其行为会根据目标跟踪策略是否准备好横向扩展或向内扩展而有所不同。如果任何目标跟踪策略已准备好进行扩展,它将扩展服务,但仅在所有目标跟踪策略(启用了缩减部分)准备好缩减时才执行缩减。
-
请勿编辑或删除 CloudWatch 警报那个 ElastiCache Auto Scaling 管理目标跟踪扩展策略。 ElastiCache 当您删除扩展策略时,Auto Scaling 会自动删除警报。
-
ElastiCache Auto Scaling 不会阻止您手动修改集群分片。这些手动调整不会影响任何现有调整 CloudWatch 警报附加到扩展策略,但可能会影响可能触发这些警报的指标 CloudWatch 警报。
-
这些 CloudWatch 由 Auto Scaling 管理的警报是根据集群中所有分片的 AVG 指标定义的。因此,拥有热分区可能会导致以下任一情况:
-
由于加载了几个热分片会触发 CloudWatch 警报
-
因所有分区的影响告警的聚合 AVG 指标不违例而在需要扩展时不执行扩展。
-
-
ElastiCache 每个集群节点的默认限制仍然适用。因此,当选择弹性伸缩时,如果您希望最大节点数超过默认限制,请在 Amazon Service Limits 请求提高限制,并选择限制类型 Nodes per cluster per instance type(每个实例类型的集群的节点数)。
-
请确保您的 VPC 中有足够的 ENI(弹性网络接口)可用,横向扩展过程中需要弹性网络接口。有关更多信息,请参阅弹性网络接口。
-
如果 EC2 没有足够的可用容量, ElastiCache Auto Scaling 无法扩展,并且会延迟到容量可用之后。
-
ElastiCache 对于 Redis OSS,缩容期间的自动缩放不会移除序列化后项目大小大于 256 MB 的插槽的分片。
-
在横向缩减期间,如果生成的分区配置中可用的内存不足,则横向缩减不会删除分区。