一个Redis dump文件的简要分析过程
摘要
遇到一个老大难的问题.
让帮忙分析一下一个Redis的dump文件.
虽然之前写过了rdb和rdr的文档
但是感觉大家都喜欢拿来主义.
没办法. 今天继续进行深入一点的分析.
原理其实还是基于rdb的. 不过多思考了一点别的内容.
分析原始文件
rdb -c memory redisdump.rdb -f redis_20221216_ZJ.txt
# 这个命令很费内存和CPU, 会导致较长的时间占用
rdr show -p 8888 redisdump.rdb
# 这个命令是打开一个浏览器窗口进行展示.
分析info日志
上面两个命令的时间都极为漫长, 所以可以先看一下现场发回来的info信息
# 第一部分持久化相关的分析
# 参数含义
rdb_changes_since_last_save:表示最近一次成功生成rdb文件时写入的命令个数。
rdb_bgsave_in_progress:表示服务器是否正在创建rdb文件。
rdb_last_save_time:表示最近一次成功生成rdb文件的时间戳。
rdb_last_bgsave_status:标识最近一次rdb持久化是否成功。
rdb_last_bgsave_time_sec:表示最近一次成功生成rdb文件消耗的时间。
rdb_current_bgsave_time_sec:表示当前服务器正在创建rdb文件的操作已经消耗的时间
rdb_last_cow_size:表示RDB过程中父进程与子进程比较执行了多少修改操作。
From https://weibo.com/ttarticle/p/show?id=2309404650615585505652
分析info日志
# 内存设置相关
maxmemory:0
maxmemory_human:0B
maxmemory_policy:noeviction
未设置最高内存限制,容易搞出问题感觉.
used_memory_human:7.33G
used_memory_rss_human:9.49G
分析rdb转储的key信息文件
# 第一步:
分析前导key的信息以及进行排序
注意 此为一条命令. 承接rdb 分析的 dump文件的结果.
cat redis_20221216_ZJ.txt |awk -F "," '{print $3}'
|awk -F ":" '{print $1}'|sort |uniq -c |
sort -k1hr >redis_keys_01.txt
将key前缀从大到小进行排列并且转储到 redis_keys_01.txt 目录中.
# 第二步:
分析dump里面key值的过期时间信息, 并且逆序排序
cat redis_20221216_ZJ.txt |awk -F "," '{print $NF,$3}' |sort -k1hr
> redis_expire.txt
注意 最前面的一部分 是没有过期时间的key
expiry key 进行分割. 后面的key 都是根据时间时间由早到晚排列
其实 info里面没有配置 maxmemory 也没有设置 memory_policy 这么查没意义.
过期和不过期的key 都存在于redis-server的进程里面.
在线监控Redis执行的命令 60秒钟
# 注意timeout命令会监控60秒的时间. 然后写入到对应的文件中
# 可以作为简单进行性能判断的依旧.
# grafana的抽象频率太低了可能会导致误判. 但是monitor会出现严重的性能损耗.
# 酌情使用
# 不给钱 用坏了是我是不会赔的.
time timeout 60 redis-cli -p 6377 monitor >20221216_6377.txt
time timeout 60 redis-cli -p 6378 monitor >20221216_6378.txt
time timeout 60 redis-cli -p 6379 monitor >20221216_6379.txt
一个Redis dump文件的简要分析过程的更多相关文章
- 一个DOS攻击木马的详细分析过程
一个DOS攻击木马的详细分析过程 0×01 起因 网路流量里发现了大量的的1.exe的文件,而且一直在持续,第一感觉就像是一个木马程序,而且每个1.exe的MD5都不一样,对比发现只有几个字节不一样( ...
- Dump 文件生成与分析
近期两天因为项目的须要,研究了一下Dump文件相关的知识,今天做一个小节(因为研究不久而且第一次写blog,希望网友们看到不要见笑). Dump文件是进程的内存镜像.能够把程序的运行状态通过调试器保存 ...
- Windows下dump文件生成与分析
一. 生成Dump文件方式 1.1任务管理器 在程序崩溃后,先不关闭程序,在任务管理器中找到该程序对应的进程.右键—>创建转储文件. 此时会在默认的目录下创建出一个dump文件. 可以看出 ...
- Windbg内核调试之四: Dump文件分析
Dump 文件分析很大程度上就是分析蓝屏产生的原因.这种系统级的错误算是Windows提示错误中比较严重的一种(更严重的还有启动黑屏等硬件或软件兼容性错误等等).说它是比较严重,是因为毕竟Window ...
- dotnet core调试docker下生成的dump文件
最近公司预生产环境.net core应用的docker容器经常出现内存暴涨现象,有时会突然吃掉几个G,触发监控预警,造成容器重启. 分析了各种可能原因,修复了可能发生的内存泄露,经测试本地正常,但是发 ...
- Dump文件的生成和使用
版权声明:本文为博主原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明. 本文链接:https://blog.csdn.net/lk142500/article/detai ...
- 调试SQLSERVER (一)生成dump文件的方法
调试SQLSERVER (一)生成dump文件的方法 调试SQLSERVER (二)使用Windbg调试SQLSERVER的环境设置调试SQLSERVER (三)使用Windbg调试SQLSERVER ...
- ITS简要分析流程(using Qiime)
Qiime安装 参考资料:http://blog.sina.com.cn/s/blog_83f77c940101h2rp.html Qiime script官方说明http://qiime.org/s ...
- java操作Jacoco合并dump文件
记录瞬间 import org.apache.maven.plugin.MojoExecutionException; import org.jacoco.core.tools.ExecFileLoa ...
- C# 异常内存信息导出Dump文件
背景:很多情况下程序崩溃我们只能看到程序抛出来的异常信息,但是有时候异常信息不清不楚我们处理异常还是一头雾水,这种情况下我们就很希望能有种办法获取程序运行时的内存进行调试,查看其中的变量.参数.方法执 ...
随机推荐
- ROMA Connect: 5大联接能力+4大集成能力,推进企业数字化转型
摘要:ROMA Connect是一个全栈式的应用与数据集成平台,源自华为数字化转型集成实践,聚焦应用和数据连接,适配多种企业常见的使用场景. 本文分享自华为云社区<数据融合集成平台ROMA Co ...
- 一文带你熟悉Pytorch->Caffe->om模型转换流程
摘要:本文旨在分享Pytorch->Caffe->om模型转换流程. 标准网络 Baseline:PytorchToCaffe 主要功能代码在: PytorchToCaffe +-- Ca ...
- 一文带你梳理Clang编译步骤及命令
摘要: 本文简单介绍了Clang编译过程中涉及到的步骤和每个步骤的产物,并简单分析了部分影响预处理和编译成功的部分因素. 本文分享自华为云社区<Clang编译步骤及命令梳理>,作者:mai ...
- 火山引擎 ByteHouse:两个关键技术,揭秘 OLAP 引擎中的数据导入技术
更多技术交流.求职机会,欢迎关注字节跳动数据平台微信公众号,回复[1]进入官方交流群 数据导入是衡量 OLAP 引擎性能及易用性的重要标准之一,高效的数据导入能力能够加速数据实时处理和分析的效率. ...
- 基于C++11特性的线程池
写在前面:本文学习自基于C++11实现线程池,代码部分均属于该博主,自己只是想记录以下自己的认知,并以这种方式加深一下自己对于多线程的理解 1 前置知识 RAII管理机制 简单来说RAII机制是一种对 ...
- AnaConda 虚拟环境创建失败的解决方案
问题:创建环境时,AnaConda界面下放一直显示正在创建中,然后过几分钟报错! 我的解决方法:--关闭 VPN... 其他解决方案请参考这篇文章:Here
- 【每日一题】29.maze (BFS 进阶)
补题链接:Here 本题代码由贺佬完成 这道题基本算一道 BFS 进阶题,有少许细节要小心 (WA1发.. #include <bits/stdc++.h> #define x first ...
- 基于 Serverless+OSS 分分钟实现图片秒变素描
简介: 在阿里云Serverless函数计算服务中部署普通图片转素描图函数服务,实现将批量上传到指定OSS桶内的图片自动转换为素描图并保存到另一个OSS桶内 场景介绍 小明接到学校老师安排的任务,需要 ...
- 深度学习(六)——神经网络的基本骨架:nn.Module的使用
一.torch.nn简介 官网地址: torch.nn - PyTorch 2.0 documentation 1. torch.nn中的函数简介 Containers:神经网络的骨架 Convolu ...
- Ubuntu 18.04安装arm-linux-gcc交叉编译器的两种方法(附下载地址)
方法一: 我们都知道Ubuntu有一个专门用来安装软件的工具apt,我们可以用它来全自动安装arm-linux-gcc. 此方法安装的是最新版的,但是此方法需要FQ,否则99%会失败,这就是为 ...