我想对无法缩减的 Amazon ElastiCache 自行设计的集群进行故障排除。
解决方法
如果您无法缩减自己设计的集群,请检查以下内容:
缓存数据大小
每个 ElastiCache 节点都有专为 Redis 引擎预留的内存量,新的节点类型可能没有足够的内存来存储缓存数据。例如,cache.m5.xlarg 节点类型具有 12.93 GiB 的存储空间。默认情况下,ElastiCache 会为管理任务(例如完全同步和创建快照)预留总内存的 25%。要更改此数量,请更新 reserved-memory-percent 参数。有关节点类型和存储量的列表,请参阅 Amazon ElastiCache 定价。
要检查 used\ _memory 和 maxmemory 节点参数中的内存使用情况,请使用 info memory 命令:
**注意:**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
要解决节点上可用内存不足的问题,请减少缓存数据或选择容量更大的节点类型。
可用节点类型
**注意:**如果在运行 AWS 命令行界面(AWS CLI)命令时收到错误,请参阅 Troubleshoot AWS CLI errors。此外,确保您使用的是最新版本的 AWS CLI。
要确定在纵向扩展和缩减时可以从当前节点类型中选择哪些节点类型,请运行 ListAllowedNodeTypeModifications API。
要查看您自己设计的 Redis 集群可以扩展到的可用节点类型,请运行 ListAllowedNodeTypeModifications 命令:
$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"
]
}
**注意:**扩展到较小的节点类型所需的时间取决于您的节点类型和当前缓存集群中的数据量。
相关信息
Managing reserved memory
Scaling down Redis cache clusters (AWS CLI)