redis内存碎片过高
mem_fragmentation_ratio >1.5
个人博客有详细代码
一、内存使用统计
二、内存碎片率高的原因
三、解决方法
一、内存使用统计
需要重点关注的指标有:used_memory_rss和used_memory以及它们的比 mem_fragmentation_ratio
used_memory :Redis使用其分配器分配的内存大小,已经使用了的内存大小
used_memory_human:用户数据所占用的内存,就是你缓存的数据的大小
used_memory_rss :操作系统分配给Redis实例的内存大小,表示该进程所占物理内存的大小
mem_fragmentation_ratio = used_memory_rss / used_memory
两者包括了实际缓存占用的内存和Redis自身运行所占用的内存,used_memory_rss指标还包含了内存碎片的开销,内存碎片是由操作系统低效的分配/回收物理内存导致的。
mem_fragmentation_ratio < 1 表示Redis内存分配超出了物理内存,操作系统正在进行内存交换,内存交换会引起非常明显的响应延迟;