zoukankan      html  css  js  c++  java
  • 通过redis-rdb-tools分析redis内存使用量

    背景:生产上一台redis服务器,物理内存32G,几个项目都在用,经常不足一月内存就会耗尽,然后开始使用swap,当swap也用尽的时候,系统就宕机。redis配置也优化过几次,但未见成效。因此决定看看redis里存放数据占用内存大小,看看有没有异常数据。

    一、安装redis-rdb-tools工

    # wget https://github.com/sripathikrishnan/redis-rdb-tools/archive/master.zip
    # unzip master
    # cd redis-rdb-tools-master/
    # python setup.py install

    二、根据dump.rdb文件成生内存报告

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

    # rdb -c memory ./dump.rdb > redis_memory_report.csv

    # sort -t, -k4nr redis_memory_report.csv

    将分析结果提交给开发人员确认,后查出这些数据类型为list的key原本打算做队列使用,但实际情况是只进不出。list长度越来越大,占用内存越来多。

    删除几个占用内存较大的key,发现内存已释放了一部分:

  • 相关阅读:
    git常用命令
    IDEA设置
    redis基础
    SQL 基础
    springboot 配置日志 打印不出来sql
    阿里巴巴开发规范最新版
    rabbitmq用户权限
    rabbitMQ配置文件
    RabbitMQ配置文件(rabbitmq.conf)
    C++模板编程:如何使非通用的模板函数实现声明和定义分离
  • 原文地址:https://www.cnblogs.com/Eivll0m/p/4514090.html
Copyright © 2011-2022 走看看