掌握:

掌握:

我在两台 centos 6 VM 中设置了一个 Redis (版本 4.0.6) sentinel 集群。主 Redis 服务器和从属 Redis 服务器的 maxmemory 均设置为 10GB,maxmemory_policy 设置为 volatile-lru。

问题是两台服务器都占用了大量内存。

掌握:

# Memory
used_memory:9939524616
used_memory_human:9.26G
used_memory_rss:11554213888
used_memory_rss_human:10.76G
used_memory_peak:10001440960
used_memory_peak_human:9.31G
used_memory_peak_perc:99.38%
used_memory_overhead:1469809500
used_memory_startup:761776
used_memory_dataset:8469715116
used_memory_dataset_perc:85.22%
total_system_memory:20957556736
total_system_memory_human:19.52G
used_memory_lua:37888
used_memory_lua_human:37.00K
maxmemory:10000000000
maxmemory_human:9.31G
maxmemory_policy:volatile-lru
mem_fragmentation_ratio:1.16
mem_allocator:jemalloc-3.6.0
active_defrag_running:0
lazyfree_pending_objects:0

奴隶:

# Memory
used_memory:9930822872
used_memory_human:9.25G
used_memory_rss:12246667264
used_memory_rss_human:11.41G
used_memory_peak:9999999848
used_memory_peak_human:9.31G
used_memory_peak_perc:99.31%
used_memory_overhead:1468959861
used_memory_startup:761792
used_memory_dataset:8461863011
used_memory_dataset_perc:85.21%
total_system_memory:20957556736
total_system_memory_human:19.52G
used_memory_lua:37888
used_memory_lua_human:37.00K
maxmemory:10000000000
maxmemory_human:9.31G
maxmemory_policy:volatile-lru
mem_fragmentation_ratio:1.23
mem_allocator:jemalloc-3.6.0
active_defrag_running:0
lazyfree_pending_objects:0

我确实运行了MEMORY PURGE,它清除了一些 rss 内存,但它会在几分钟内重新填充并不断增长。

尽管有些键没有设置到期时间,但我存储在 Redis 中的大多数数据都有到期时间。

关于如何控制内存消耗或永久解决此问题的任何建议。我应该增加虚拟机上的 RAM 吗?我确实在两个虚拟机上运行了其他应用程序,但它们占用的内存几乎不到 100 MB。

答案1

内存统计数据表明,大部分内存都被数据使用,因此这并没有什么问题。

如果碎片化是一个问题,您可以尝试启用主动碎片整理。最后,我会考虑将 Redis 服务器更新到最新的 v4.x,如果不是 5.x。

相关内容