Redis碎片清理机制及参数设置

Redis内存碎片清理机制就是Redis工程师兼职做清洁工。内存碎片必须要清理,否则Redis自己也会被碎片堵门,碎片清理又是有代价的,那就是Redis分神了,清理碎片期间工作效率自然降低。所以,合理控制Redis内存碎片进程对于Redis运行来说非常重要。

Redis内存碎片整理基本参数: # 开整自动碎片清理机制
activedefrag yes

# 内存碎片的字节数达到60MB时,开始清理
active-defrag-ignore-bytes 60mb

# 碎片率达到百分之多少开启整理
active-defrag-threshold-lower 24

# 最大性能进行碎片整理的情况: 内存碎片超过 100%,则尽最大努力整理,此时reddis内碎几乎占满全部空间
#active-defrag-threshold-upper 100

# 控制清理操作占用CPU时间比例的下限:自动清理过程所用CPU时间的比例不低于30%,保证清理能正常开展
active-defrag-cycle-min 30

# 控制清理操作占用CPU时间比例的上限:自动清理过程所用CPU时间的比例不高于70%,一旦超过就停止清理。避免在清理时,大量的内存拷贝阻塞Redis,导致响应延迟升高
active-defrag-cycle-max 70

# 从主字典扫描中处理的SET/HASH/ZSET/List字段的最大数目:默认1000
# active-defrag-max-scan-fields 1000

实际生产环境中遇到Redis性能变慢,通过日志查看是否正在进行碎片清理。如果因为Redis正在清理碎片导致情能下降,建议调整Redis碎片清理参数,例如调小active-defrag-cycle-max阀值。

具体生产环境千差百异,Redis碎片清理参数要在运行中根据生产现场来测试出合理值。

注:Redis默认碎片整理参数大约以maxmemory=1G来示例。

#现在前往

精选留言

Redis,碎片,清理,机制
sample
2021-03-21
写留言
签到
投稿
QQ咨询
返回顶部