Redis内存碎片

冷暖自知 提交于 2021-01-20 00:04:48

碎片监控

prometheus监控项

监控项 描述 阈值
redis_memory_used_rss_bytes os分配给redis的内存
redis_memory_used_bytes redis存储数据实际使用内存
redis_memory_used_rss_bytes/redis_memory_used_bytes >1.5

info memory命令

127.0.0.1:7000> info memory
# Memory
used_memory:276755496
used_memory_rss:277745664
mem_fragmentation_ratio:1.00
mem_fragmentation_bytes:1031192

碎片整理

通过碎片整理将不连续的空闲内存,经过数据的拷贝迁移,实现空闲内存的合并、连续;

相关配置参数:

参数 默认值 描述
activedefrag no 是否开启碎片清理
active-defrag-ignore-bytes 100mb 当超过值时进行碎片清理
active-defrag-threshold-lower 10 内存碎片所占比例超过10%时进行碎片清理
active-defrag-cycle-min 1 碎片清理所用CPU时间比例不低于配置值
active-defrag-cycle-max 25 碎片清理所用CPU时间比例不高于配置值,避免阻塞Redis
active-defrag-threshold-upper 100 内存碎片超过100%,尽最大努力进行清理
active-defrag-max-scan-fields 1000 限制每次对set/hash/zset/list中多少列进行清理

什么时候触发清理?

当开启activedefrag,且同时满足碎片超过active-defrag-ignore-bytesactive-defrag-threshold-lower的配置值时

    /* If we're not already running, and below the threshold, exit. */
    if (!server.active_defrag_running) {
        if(frag_pct < server.active_defrag_threshold_lower || frag_bytes < server.active_defrag_ignore_bytes)
            return;
    }

我的博客即将同步至腾讯云+社区,邀请大家一同入驻:https://cloud.tencent.com/developer/support-plan?invite_code=36bdfn0jnf28k

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!