一个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文件
背景:很多情况下程序崩溃我们只能看到程序抛出来的异常信息,但是有时候异常信息不清不楚我们处理异常还是一头雾水,这种情况下我们就很希望能有种办法获取程序运行时的内存进行调试,查看其中的变量.参数.方法执 ...
随机推荐
- Rust布道者张汉东倾授,入门Rust初学者都要攻破哪些难点?
摘要:Rust语言学习曲线过于陡峭?初学者看懂这张思维导图,快速入门. Rust语言这两年的热度大家有目共睹,作为一个有着突破性变革意义的语言,其光鲜背后也有诸多质疑,对于想要在系统编程语言上更上一层 ...
- HDC.Cloud2021|开发者们都在谈的云原生到底长什么样?
摘要:云原生数据库基于存储与计算分离架构,与传统数据库相比,具备高性能.高扩展.一致性.易管理和多云支持等特性,在海量数据处理.智能存储.业务应用等方面表现出了强大的生命力. 近几年,云原生的风越刮越 ...
- GaussDB(for Redis)揭秘:Redis存算分离架构最全解析
前言: 本文根据华为云NoSQL数据库架构师余汶龙,在今年的中国系统架构师大会SACC上的演讲整理而成,内容如下. 本次分享的大纲分成如下四个部分: 什么是GaussDB(for Redis)? 为什 ...
- GaussDB(for MySQL)如何快速创建索引?华为云数据库资深架构师为您揭秘
摘要:云服务环境下,如何解决客户基于大量数据创建索引的性能问题,成为云服务厂商的一个挑战.华为云GaussDB(for MySQL)通过引入并行创建索引技术,很好地解决了批量索引创建和临时添加索引等性 ...
- vue-grid-layout数据可视化图表面板优化过程所遇问题汇总
对于drag事件不熟悉的,请先阅读:<drag事件详解:html5鼠标拖动排序及resize实现方案分析及实践> 之前老项目grafana面板,如下图所示(GEM添加图表是直接到图表编辑, ...
- CountDownLatch、CyclicBarrier 使用区别
主要区别 CountDownLatch:所有子线程完成后,再执行主线程 CyclicBarrier: 所有子线程就绪后,再执行子线程 CountDownLatch 所有子线程完成后,再执行主线程 多线 ...
- Axure 单键快捷键
如果怕误操作,可以把它关闭
- PPT 快速生成图片墙
图片墙有什么用? 掌握以后,做封面就不慌了.减轻了找素材的压力 手动排列 插入任意大小矩形,好处,不需要对插入的张图片单独调整大小 右击进行组合,然后拉面整个PPT页面 插入8张图片 设置蒙版 画个大 ...
- web自动化-selenium携带cookie免密登录
在我们做web自动化的时候,经常会遇到含有登录的页面,我们必须登录之后才能够对我们想要操作的页面元素进行定位,也就是说所有的操作都在登录前提下,其实没必要每次请求都先登录,当我们登录成功了,会在coo ...
- 手把手教你在 Windows 环境中搭建 MQTT 服务器
前言 前些天要对接一家硬件商的设备数据,对方使用的 MQTT 协议点对点透传,所以又赶紧搭建 MQTT 服务器,写 .NET 程序接收数据等等,今天分享一下如何搭建 MQTT 服务器. MQTT 协议 ...