在理想情况下,used_memory_rss
的值应该只比used_memory
稍微高一点儿。
当rss>used
,且两者的值相差较大时,表示存在(内部或外部的)内存碎片。
内存碎片的比率可以通过mem_fragmentation_ratio
的值看出。
当used>rss
时,表示 Redis 的部分内存被操作系统换出到交换空间了,在这种情况下,操作可能会产生明显的延迟。
Because Redis does not have control over how its allocations are mapped to memory pages, highused_memory_rss
is often the result of a spike in memory usage.
当 Redis 释放内存时,分配器可能会,也可能不会,将内存返还给操作系统。
如果 Redis 释放了内存,却没有将内存返还给操作系统,那么used_memory
的值可能和操作系统显示的 Redis 内存占用并不一致。
查看used_memory_peak
的值可以验证这种情况是否发生。