RJ博客

Redis内存分析(大key排查)

本文目录

背景

线上Redis遇到一个问题,就是内存无限缓慢增长,2个G的内存几个小时就快被吃完了,因此需要查看Redis实例中数据的内存分布情况。为了不影响线上实例的使用,采用bgsave生成dump.rdb文件,再结合redis-rdb-tools进行静态分析。

生成内存快照

redis-rdb-tools是一个python的解析rdb文件工具, 主要有一下三个功能:

1) 生成内存快照

2) 转储成json格式

3) 使用标准的diff工具比较两个dump文件

在分析内存的使后,我们主要用到它的生成内存快照功能。

redis-rdb-tools安装

redis-rdb-tools有两种安装方式,任选其一即可。
使用PYPI安装

pip install rdbtools

从源码安装

git clone https://github.com/sripathikrishnan/redis-rdb-toolscd redis-rdb-tools
sudo python setup.py install

使用redis-rdb-tools生成内存快照

生成内存快照的命令为:

rdb -c memory dump.rdb > memory.csv

生成CSV格式的内存报告。包含的列有:数据库ID,数据类型,key,内存使用量(byte),编码。内存使用量包含key、value和其他值。
注意:内存使用量是理论上的近似值,在一般情况下,略低于实际值。

经排查发现内存实际大小并没有发生什么大变化,最后经确认是腾讯云Redis服务器内存泄露了。


Refer:

https://www.jianshu.com/p/6e3f1d393811

https://yq.aliyun.com/articles/62899

https://blog.csdn.net/hunhun1122/article/details/82655884

相关推荐

发表评论