zoukankan      html  css  js  c++  java
  • Redis内存爆分析

    先总结下在不能获取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

     调整传参

     分析汇总

    这个就看的比较清楚

     参考:【推荐】六大免费的Redis内存分析工具

     

  • 相关阅读:
    Qt 读写XML文件
    用 Qt 中的 QDomDocument类 处理 XML 文件(上)
    Qss
    QTableWidget的使用和美工总结
    用 Qt 中的 QDomDocument类 处理 XML 文件(下)
    ArcEngine中最短路径的实现
    AE中网络分析的实现 的各个类之间的关系
    AE控制图层中要素可见状态的几种方法
    如何使用Name对象,包括WorkspaceNames和DatasetNames
    AE属性表操作
  • 原文地址:https://www.cnblogs.com/timseng/p/14695351.html
Copyright © 2011-2022 走看看