为什么我无法缩减我的 ElastiCache 集群?

1 分钟阅读
0

为什么我无法缩减我的 Amazon ElastiCache 集群?

解决方法

如果您无法缩减集群,请检查以下内容:

缓存数据大小

新节点类型可能没有足够的内存来存储缓存数据。每个 ElastiCache 节点都有为 Redis 引擎预留的专用内存量。例如,cache.m5.xlarge 节点类型具有 12.93 GiB 的存储空间。默认情况下,ElastiCache 会为管理任务(例如 fullsync 和创建快照)预留总内存的 25%。您可以使用 reserved-memory-percent 参数更改此数量。

有关节点类型和存储量的列表,请参阅 Amazon ElastiCache 定价

cache.m5.xlarge 节点为例,Redis 引擎可以使用 9.69 GiB(maxmemory)来保存密钥空间。剩余的内存作为预留内存。您当前的节点类型使用所有可用内存来存储数据。新节点类型提供的内存小于 9.69 GiB。因此,缩减失败了。

使用 info memory 命令验证节点的 used_memorymaxmemory 参数中显示的内存使用情况。请注意,info memory 命令以“GB”为单位显示内存。Amazon ElastiCache 定价页面以“GiB”为单位显示内存。

test.xm4oz6.ng.0001.use1.cache.amazonaws.com:6379> info memory
# Memory
used_memory:5579416
used_memory_human:5.32M
used_memory_rss:11218944
used_memory_rss_human:10.70M
used_memory_peak:5856480
used_memory_peak_human:5.59M
maxmemory:10418941287
maxmemory_human:9.70G

如果节点上没有足够的可用内存,请减少缓存数据。或者,选择容量更大的节点类型。

可用节点类型

确定在扩展和缩减时可以从当前节点类型中选择哪些节点类型。您可以使用 ListAllowedNodeTypeModifications API 调用来执行此操作。此 API 调用列出了您可以将 Redis 集群或复制组的当前节点类型扩展到的所有可用节点类型。

要查看 Redis 集群的可用节点类型,请从 AWS 命令行界面(AWS CLI)运行 ListAllowedNodeTypeModifications API 调用。生成的列表显示了可以扩展到的节点类型。

**注意:**如果在运行 AWS CLI 命令时收到错误,请确保您使用的是最新版本的 AWS CLI

$aws elasticache list-allowed-node-type-modifications --replication-group-id checkout-cache-test

{
  "ScaleUpModifications": [
    "cache.r4.16xlarge",
    "cache.r5.12xlarge",
    "cache.r5.24xlarge",
    "cache.r5.4xlarge"
  ],
  "ScaleDownModifications": [
    "cache.m3.2xlarge",
    "cache.m3.large",
    "cache.m3.medium",
    "cache.m3.xlarge",
    "cache.m4.2xlarge",
    "cache.m4.4xlarge",
    "cache.m4.large",
    "cache.m4.xlarge",
    "cache.r3.2xlarge",
    "cache.r3.large",
    "cache.r3.xlarge",
    "cache.r4.2xlarge",
    "cache.r4.large",
    "cache.r4.xlarge",
    "cache.t2.medium",
    "cache.t2.micro",
    "cache.t2.small",
    "cache.t3.medium",
    "cache.t3.micro",
    "cache.t3.small"
  ]
}

**注意:**扩展到较小节点类型所需的时间取决于您的节点类型和当前缓存群集中的数据量。


相关信息

管理预留内存

缩减 Redis 缓存群集(AWS CLI)

AWS 官方
AWS 官方已更新 2 年前