Rah*_*mar 11 redis amazon-elasticache
我想在 ElastiCache 上监控我的 redis 缓存集群。从 AWS/Elasticache,我能够获得 FreeableMemory 和 BytesUsedForCache 等指标。如果我没看错,BytesUsedForCache 是集群使用的内存(假设集群中只有一个节点)。我想计算内存的使用百分比。任何人都可以帮助我获得 Redis 中内存使用的百分比。
我们遇到了同样的问题,因为我们想要监控我们的数据消耗的 ElastiCache Redis 内存的百分比。正如您正确编写的那样,您需要查看 BytesUsedForCache - 这是您存储在 Redis 中的数据消耗的内存量(以字节为单位)。另外两个重要的数字是
您用于 ElastiCache 节点的 AWS 实例类型的可用 RAM,请参阅https://aws.amazon.com/elasticache/pricing/
您的参数值reserved-memory-percent(检查您的 ElastiCache 参数组)。这是为“非数据目的”保留的 RAM 百分比,即用于操作系统和任何 AWS 需要在那里运行以管理您的 ElastiCache 节点。默认情况下,这是 25%。请参阅https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/redis-memory-management.html#redis-memory-management-parameters
因此 ElastiCache 中数据的总可用内存为
(100 - reserved-memory-percent) * instance-RAM-size
Run Code Online (Sandbox Code Playgroud)
(在我们的例子中,我们使用具有 52,82 GB RAM 的实例类型 cache.r5.2xlarge,我们的默认设置为reserved-memory-percent= 25%。使用infoRedis 中的命令检查我看到maxmemory_human= 39.61 GB,等于 75 52,82 GB 的百分比。)
所以已用内存与可用内存的比率是
BytesUsedForCache / ((100 - reserved-memory-percent) * instance-RAM-size)
Run Code Online (Sandbox Code Playgroud)
您必须根据所选节点的大小来计算此值。请参阅这 2 篇文章了解更多信息。
定价文档为您提供了设置的大小。
https://aws.amazon.com/elasticache/pricing/
https://forums.aws.amazon.com/thread.jspa?threadID=141154