碎片监控
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-bytes
和active-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
来源:oschina
链接:https://my.oschina.net/u/1255441/blog/4649705