先总结下在不能获取dump文件的时候,直接用redis-audit
背景:
运维同学说resis要爆了,让看下
直接使用客户端
测试环境可以直接在客户端这样分析
然而 正式环境不支持
手动统计
先找到数量最多的
计算内存统计
占了差不多2G
像这样逐个分析大Key比较费时,下面看下工具
redis-memory-analyzer rma
https://github.com/gamenet/redis-memory-analyzer
这是一个python实现的分析工具,可以直接安装。
这里直接使用docker启动
执行分析,然额,redis占用太多,直接rma被Killed
试试看在本地运行源代码,尝试更改超时时间什么的:
克隆代码找到入口直接运行,看来是可用的,正在分析...
但是当你的数据量足够大,就需要好多时间,无望
redis-sampler
找到了另一个分析工具,是ruby写的
https://github.com/antirez/redis-sampler
同样直接docker运行ruby环境,发现需要装redis模块,使用gem install redis安装
https://github.com/redis/redis-rb
这里我们的redis设置了验证,但是这个脚本默认无验证,这里要改下ruby脚本
如果您的Redis实例需要身份验证的话,它无法做到开箱即用(out-of-the-box)。您需要修改脚本以适应密码的需求。最简单形式是:redis = Redis.new(:host => ARGV[0], :port => ARGV[1].to_i, :db => ARGV[2].to_i) and change it to: redis = Redis.new(:host => ARGV[0], :port => ARGV[1].to_i, :db => ARGV[2].to_i, :password => "add-your-password-here")
因为我们挂载了脚本,所以直接在宿主机改最下面的那个配置,加入我们的密码,用tail看下
下面直接开始分析
这就是分析结果:这里只有各种类型的占比
redis-audit
https://github.com/snmaynard/redis-audit
这是另一个ruby写的分析脚本
同样docker运行,安装依赖,分析
安装依赖,注意更新bundler
调整传参
分析汇总
这个就看的比较清楚