通过info命令,我得到
mem_fragmentation_ratio:1.24
这比1大。
我知道这意味着红色有一些可以释放的自由记忆。
我如何释放这个内存并降低这个比率?
我试过MEMORY PURGE,但是比率没有变化。
redis_version:4.0.9
# Memory
used_memory:8347302992
used_memory_human:7.77G
used_memory_rss:9236336640
used_memory_rss_human:8.60G
used_memory_peak:17919661152
used_memory_peak_human:16.69G
used_memory_peak_perc:46.58%
used_memory_overhead:519883816
used_memory_startup:1215600
used_memory_dataset:7827419176
used_memory_dataset_perc:93.79%
total_system_memory:270383198208
total_system_memory_human:251.81G
used_memory_lua:37888
used_memory_lua_human:37.00K
maxmemory:21474836480
maxmemory_human:20.00G
maxmemory_policy:noeviction
mem_fragmentation_ratio:1.11
mem_allocator:jemalloc-4.0.3
active_defrag_running:0
lazyfree_pending_objects:0发布于 2019-06-28 03:47:25
Redis对于释放未使用的内存不是很好。一般来说,红宝石会保留它在巅峰时消耗的所有内存。这通常不是一个问题,只要您的服务器有足够的内存来服务它。我可以从您的信息中看到,您的服务器有更多的内存比您正在积极使用的redis。
为了明确起见, command只使用jemalloc内存分配程序:
内存清除命令试图清除脏页,以便分配器可以回收这些页面。 此命令目前仅在使用jemalloc作为分配器时才实现,并对所有其他命令计算为良性的NOOP。
因此,如果您在windows或mac上运行redis,您可能无法使用MEMORY PURGE。
一般情况下,我不会担心这样接近1的碎裂率。通常只有当碎片率低于1或远高于1(例如- 10或更多)时,才会出现问题。
https://stackoverflow.com/questions/56799931
复制相似问题