• 通过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,发现内存已释放了一部分:

  • 相关阅读:
    rabbitMq交换机direct、topics
    rabbitMq及安装、fanout交换机-分发(发布/订阅)
    rabbitmq
    .sh文件启动 jenkins
    雪花算法、二进制运算
    收银台数据库存储AES加解密
    数据库事物
    excel技巧
    日期计算、正则、sequence、索引、表连接、mybatis
    oracle常用函数介绍
  • 原文地址:https://www.cnblogs.com/Eivll0m/p/4514090.html
Copyright © 2020-2023  润新知