首页/数据/数据库速查/碎片治理与 activedefrag
Redis 运维与场景124 条

碎片治理与 activedefrag

内存碎片高(RSS 远大于 used_memory)时开 activedefrag 在线整理;不支持的版本只能重启或迁移实例。

数据库速查数据更新于 2026-10-12

启用在线整理

启用在线整理
CONFIG SET activedefrag yes
CONFIG SET active-defrag-ignore-bytes 100mb
CONFIG SET active-defrag-threshold-lower 10
CONFIG SET active-defrag-threshold-upper 100
INFO memory | grep -E 'active_defrag|mem_fragmentation_ratio'
# 观察整理进度:
INFO memory | grep allocator_frag_ratio
activedefrag4.0+ 在线碎片整理
ignore-bytes碎片低于该值不动
threshold-lower/upper触发与全力整理的碎片百分比
cycleCPU 占用节奏控制
碎片主因常是「大量删键 + 分配器尺寸类」:整理治标,管理键生命周期(TTL、分桶、均匀大小)才是治本。

易错点

  • 内存明明有碎片却直接扩容:RSS 高但 used_memory 不高,扩容解决不了
  • activedefrag 全力整理期间 CPU 抖动,注意 cycle 参数与业务峰值

数据来源与参考

  • Redis 官方文档: activedefrag
  • Redis 官方文档: 内存碎片

相关工具

​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌