如何对更改 ElastiCache for Redis 节点类型时出现的错误进行故障排除?

上次更新日期:2022 年 7 月 19 日

更改 Amazon ElastiCache for Redis 节点类型时,该选项不可用,更改未生效,或者收到错误消息。该如何对此类问题进行故障排除?

简短描述

以下是更改 Redis 节点类型时出现问题的常见原因:

  • 目标节点类型的内存不足。
  • 容量不足。
  • 弹性网络接口不足。
  • 指定的节点类型在可用区中不可用。
  • Redis 引擎版本不支持目标节点类型。
  • ApplyImmediately 参数设置为了 false。
  • 节点利用率过高。

解决方法

注意:您可以使用 ElastiCache 事件AWS CloudTrail 获得进一步见解并查看相关错误消息。

目标节点类型的内存不足

确保新节点类型具有足够大的内存,以足以容纳所有数据和满足所需的 Redis 开销。Amazon CloudWatch 在 Amazon ElastiCache 下提供 Redis 指标。确保 BytesUsedForCache 指标中显示的当前总内存使用量低于目标节点类型的最大容量

如果 BytesUsedForCache 指标高于目标节点类型的最大容量,则您会收到以下错误消息:

Failed to scale down to cache node type Replication Group <replication_group_name> because the node has insufficient memory. Please select a different node type or reduce current memory usage and retry.

注意:默认情况下,每个缓存节点都为非数据使用和后台写入预留 25% 的内存。预留内存量在 reserved-memory-percent 参数中设置。此预留内存会将用于缓存数据的最大内存减少 25%。这意味着可用于数据的内存量更少。您可以修改预留内存量以更改可用于缓存数据的最大内存。此更改需要创建自定义参数组,因为您无法修改默认参数组。但是,将预留内存百分比设置为 0 可能会导致某些集群操作(例如快照)失败。

有关缓存数据大小和内存使用情况的说明,请参阅为什么无法缩减 ElastiCache 集群?

容量不足

InsufficientCacheClusterCapacity 错误表示 Amazon ElastiCache 无法从给定的可用区中分配请求的众多实例。有关解决此错误的信息,请参阅错误消息:InsufficientCacheClusterCapacity

弹性网络接口不足

确保您有足够的弹性网络接口容量。如需要,使用服务限额来提高限制。有关更多信息,请参阅如果已达到 AWS 区域中的弹性网络接口限制,如何获得更多弹性网络接口?

指定的节点类型在可用区中不可用

如果您使用的节点类型在指定的可用区中不受支持,则会收到以下 InvalidParameterValue 错误消息:

Specified node type <node_type> is not available in AZ <availability_zone>

有关可用节点类型的说明,请参阅为什么无法缩减 ElastiCache 集群?

Redis 引擎版本不支持目标节点类型

某些节点类型需要更高版本的 Redis 引擎。有关更多信息,请参阅支持的节点类型

请首先升级 Redis 引擎版本,然后再升级到节点类型。

将 ApplyImmediately 参数设置为 false

如果 ApplyImmediately 参数设置为 false,则对复制组中节点的更改将在下次维护重启或下次故障重启(以先到者为准)时应用。如果更改必须立即生效,请将此参数设置为 true。

注意:节点类型更改所需的时间取决于节点类型和集群中的数据量。最佳实践是在集群的流量处于最低水平时执行升级。

节点利用率过高

在修改期间,集群上的繁重工作负载可能干扰 ElastiCache 工作流。最佳实践是在数据流量处于较低水平的时段启动节点修改。


这篇文章对您有帮助吗?


您是否需要账单或技术支持?