一个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文件
背景:很多情况下程序崩溃我们只能看到程序抛出来的异常信息,但是有时候异常信息不清不楚我们处理异常还是一头雾水,这种情况下我们就很希望能有种办法获取程序运行时的内存进行调试,查看其中的变量.参数.方法执 ...
随机推荐
- GaussDB(for Redis)多租户:读写权限控制和数据库隔离的完美融合
本文分享自华为云社区<GaussDB(for Redis)企业级特性揭秘之多租户管理>,作者: GaussDB 数据库 . 华为云GaussDB(for Redis)持续完善企业级增强特性 ...
- 华为扫地僧:揭秘IoT+鸿蒙帮助企业突围物联网安全问题
摘要:通过介绍物联网安全架构以及华为云IoT+鸿蒙端边云协同安全实践,意在通过华为云IoT+鸿蒙帮助企业解决物联网安全问题. 在本期#码出未来,与你同行#HDC.Cloud2023华为云开发者社区系列 ...
- 华为云举办AI经典论文复现活动,打造领先AI开发者学习社区
摘要:百余篇经典论文算法上线华为云AI Gallery,学AI就用ModelArts 2020年8月28日,华为云AI院长峰会在杭州千岛湖举行,来自中国科学院.中国工程院的多位院士,以及清华大学.北京 ...
- 详解SQL优化必备:并行执行框架和执行计划
摘要:在关系型数据库中,优化器是数据库的核心组件之一,由于一些列因素都会影响语句的执行,优化器综合权衡各个因素,在众多的执行计划中选择认为是最佳的执行计划. 本文分享自华为云社区<华为云Gaus ...
- 信创就用国产的生态,Solon v2.6.4 发布
Solon 是什么框架? Java 新的"生态级"应用开发框架.从零开始构建,有自己的标准规范与开放生态(历时六年,具备全球第二级别的生态规模). 相对于 Spring,有什么特点 ...
- Python FastAPI 获取 Neo4j 数据
前提条件 先往Neo4j 里,准备数据 参考:https://www.cnblogs.com/vipsoft/p/17631347.html#创建传承人 搭建 FastAPI 项目:https://w ...
- Sublime Text 16进制显示
大文件推荐使用 UltraEdit 工具 Sublime Text 16进制显示(可以直接显示不同数据类型转换后的结果,不用在线工具,转二进制了) 安装 HexViewer 插件 1. Ctrl + ...
- MB51增强
一.在MB51报表中新增列 包含文件RM07DOCS_GENERATED的itab结构中,新增字段 在RM07DOCS中的detail_list子例程中添加查询逻辑 在子例程build_fieldca ...
- 批量上传 jar 包到远程 maven 仓库
mvn deploy命令: mvn deploy:deploy-file -Dmaven.test.skip=true -Dfile=log-lib-1.1.jar -DgroupId=com.sun ...
- 二、Mycat安装
系列导航 一.Mycat实战---为什么要用mycat 二.Mycat安装 三.mycat实验数据 四.mycat垂直分库 五.mycat水平分库 六.mycat全局自增 七.mycat-ER分片 万 ...