ElastiCache 实例上的 Redis 最大内存低于预期

ElastiCache 实例上的 Redis 最大内存低于预期

我有一个 AWS ElastiCache 实例,托管在一个cache.m5.xlarge实例类型上,它宣传12.93gb有 RAM。

来自AWS ElastiCache 文档它表示一个cache.m5.xlarge实例应该将其maxmemory设置为13891921715,除以 1024*1024*1024 大致等于12.94gb

然而,我们最近发现,maxmemory-policy: volatile-lru当达到大致目标时,我们的服务器会根据配置逐出密钥9.7gb

通过检查实际的机器使用情况redis-cli并发出info memory命令,我们得到:

my-stack.ng.0001.use1.cache.amazonaws.com:6379> info memory
# Memory
used_memory:10070155984
used_memory_human:9.38G
used_memory_rss:10629488640
used_memory_rss_human:9.90G
used_memory_peak:10419154184
used_memory_peak_human:9.70G
used_memory_peak_perc:96.65%
used_memory_overhead:581297150
used_memory_startup:3668736
used_memory_dataset:9488858834
used_memory_dataset_perc:94.26%
allocator_allocated:10073929632
allocator_active:10463571968
allocator_resident:10660438016
used_memory_lua:60416
used_memory_lua_human:59.00K
used_memory_scripts:1032
used_memory_scripts_human:1.01K
number_of_cached_scripts:4
maxmemory:10418941287
maxmemory_human:9.70G
maxmemory_policy:volatile-lru
allocator_frag_ratio:1.04
allocator_frag_bytes:389642336
allocator_rss_ratio:1.02
allocator_rss_bytes:196866048
rss_overhead_ratio:1.00
rss_overhead_bytes:-30949376
mem_fragmentation_ratio:1.06
mem_fragmentation_bytes:559163408
mem_not_counted_for_evict:0
mem_replication_backlog:1048576
mem_clients_slaves:49806
mem_clients_normal:6528840
mem_aof_buffer:0
mem_allocator:jemalloc-5.1.0
active_defrag_running:0
lazyfree_pending_objects:0

我在这里看到的最大一点是maxmemory:10418941287,这低于3.2gb预期。

我们的服务器配置是使用复制设置的,因此总共有两个cache.m5.xlarge节点。

maxmemory为什么实际服务器的设置和文档所述之间存在依赖关系,是否有任何方法可以使用更多的服务器内存来存储实际缓存的项目?

相关内容