我的 ElastiCache Redis 节点中的可用内存少于 Amazon ElastiCache 定价页面上列出的值。这是什么原因?

上次更新时间:2020 年 1 月 31 日

我的 Amazon ElastiCache Redis 节点中的可用内存始终少于 Amazon ElastiCache 定价中所列的值。这是什么原因?

解决方法

ElastiCache 定价页面以 GiB 为单位显示每个支持节点类型的可用内存。但是,在默认参数组中,一部分内存要预留给备份和故障转移操作。对于 2.8.22 之前的 Redis 版本,最佳做法是预留 50% 的总内存。对于 Redis 版本 2.8.22 及更高版本,最佳做法是预留总内存的 25%。对此进行调节的参数为 reserved-memory(对于 2017 年 3 月 16 日前开始使用 ElastiCache 的客户)或 reserved-memory-percent(对于 2017 年 3 月 16 日或此时间后开始使用 ElastiCache 的客户)。

例如,默认参数组中使用 cache.t3.micro 节点类型的集群占总内存的 0.5 GiB。由于 reserved-memory-percent 参数的缘故,将预留 25% 的此内存。因此,此节点中的可用内存为 0.375 GiB。

要查看 ElastiCache Redis 节点中的可用内存:

1.    使用 redis-cli 工具或您选择的另一个工具连接集群。有关使用 redis-cli 工具的信息,请参阅步骤 3.2:连接 Redis 集群或复制组 (Linux)

2.    运行 info memory 命令并检查 maxmemory 值。以下示例使用连接到 IP 地址为 172.31.35.93 的 Redis 服务器的 redis-cli 生成。

172.31.35.93:6379> info memory
# Memory
maxmemory:402653184

注意:maxmemory 值以字节为单位。402653184 字节相当于 0.375 GiB。Redis 引擎使用字节或 MB 来表示内存。AWS 文档使用 GiB 来表示内存。尽管这两个单位之间的差异很小且小数字几乎不会产生什么影响,但差异还是会随着节点内存的大小呈指数增长。您可以使用您选择的在线计算器在这些单位之间转换。


这篇文章对您有帮助吗?

我们可以改进什么?


需要更多帮助?