内存碎片率公式
mem_fragmentation_ratio = used_memory_rss/used_memory
- used_memory :使用Redis服务自带的分配器分配的内存空间大小。
- used_memory_rss :操作系统分配给Redis实例的内存大小,表示该进程所占物理内存的大小。
两者包括了实际缓存占用的内存和Redis自身运行所占用的内存,used_memory_rss指标还包含了内存碎片的开销,内存碎片是由操作系统低效的分配/回收物理内存导致的。
- mem_fragmentation_ratio < 1:表示Redis内存分配超出了物理内存,操作系统正在进行内存交换,内存交换会引起非常明显的响应延迟;
- mem_fragmentation_ratio > 1:是合理的;
- mem_fragmentation_ratio > 1.5:说明Redis消耗了实际需要物理内存的150%以上,其中50%是内存碎片率,可能是操作系统或Redis实例中内存管理变差的表现。