探寻 Redis 内存诡异增长的元凶

一、现象

  • 实例名:r-bp1cxxxxxxxxxd04(主从)

  • 时间:2017-11-16 12:26~12:27

  • 问题:一分钟内存上涨了2G,如下图所示:

  • 键值规模:6000万左右

 

2ab63c3e1cc5605b00dead462748e86b1a746c1a

 

二、Redis内存分析

1. 内存组成

上图中的内存统计的是Redis的info memory命令中的used_memory属性,例如:

 
  1. redis> info memory# Memoryused_memory:9195978072used_memory_human:8.56Gused_memory_rss:9358786560used_memory_peak:10190212744used_memory_peak_human:9.49Gused_memory_lua:38912mem_fragmentation_ratio:1.02mem_allocator:jemalloc-3.6.0

每个属性的详细说明

属性名属性说明
used_memoryRedis 分配器分配的内存量,也就是实际存储数据的内存总量
used_memory_human以可读格式返回 Redis 使用的内存总量
used_memory_rss从操作系统的角度,Redis进程占用的总物理内存
used_memory_peak内存分配器分配的最大内存,代表used_memory的历史峰值
used_memory_peak_human以可读的格式显示内存消耗峰值
used_memory_luaLua引擎所消耗的内存
mem_fragmentation_ratioused_memory_rss /used_memory比值,表示内存碎片率
mem_allocatorRedis 所使用的内存分配器。默认: jemalloc

计算公式如下:

 
  1. used_memory = 自身内存+对象内存+缓冲内存+lua内存used_rss = used_memory + 内存碎片

 

如下图所示:

原文链接

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值