redis性能分析工具redis-faina

redis-faina是一个通过解析redis的MONITOR命令,从而对redis实例进行性能诊断的工具。
该工具使用虽然简单,但是功能还是很不错,对于定位线上redis性能问题,确实是一把利器。

1. redis-faina安装

该工具是用python写的,不需要安装什么依赖包,只需要将redis-faina.py下载即可:

git clone https://github.com/facebookarchive/redis-faina.git

2. redis-faina使用

使用也非常简单,help一下:

$ ./redis-faina.py -h
usage: redis-faina.py [-h] [--prefix-delimiter PREFIX_DELIMITER][--redis-version REDIS_VERSION][input]positional arguments:input                 File to parse; will read from stdin otherwiseoptional arguments:-h, --help            show this help message and exit--prefix-delimiter PREFIX_DELIMITERString to split on for delimiting prefix and rest ofkey--redis-version REDIS_VERSIONVersion of the redis server being monitored

其中--prefix-delimiter主要用于统计前缀的key的数据。

可以通过redis MONITOR命令以及管道进行分析,比如:

redis-cli -p 6379 MONITOR | head -n <NUMBER OF LINES TO ANALYZE> | ./redis-faina.py [options]

redis-faina也可以读文件中MONITOR日志进行分析:

$ redis-cli -p 6379 MONITOR > m.log
$ ./redis-faina.py ./m.log

输出如下:

$ ./redis-faina.py ./m.log
Overall Stats
========================================
Lines Processed     44          -- 总命令数
Commands/Sec        0.63        -- qpsTop Prefixes                    -- 前缀最多的数据
========================================
n/aTop Keys                        -- 使用最多的key
========================================
userToken       21  (47.73%)
userSession     21  (47.73%)Top Commands                    -- 使用的最多的命令
========================================
HGET        40  (90.91%)
HSET        2   (4.55%)
COMMAND     1   (2.27%)Command Time (microsecs)        -- 请求的响应时间分布
========================================
Median      394010.0
75%         447155.0
90%         8218888.25
99%         16510561.75Heaviest Commands (microsecs)   -- 总体耗时最多的命令
========================================
HGET        57269310.75
HSET        8219184.75
COMMAND     4601067.25Slowest Calls                   -- 慢请求列表
========================================
16510561.75     "HGET" "userSession" "7b8a4f64e03c7e24586f2fb2d705b232"
14359969.25     "HGET" "userSession" "1dcb54f57c3d9775c713ea8f97ae0ebc"
9015870.0       "HGET" "userSession" "7b8a4f64e03c7e24586f2fb2d705b232"
8881043.0       "HGET" "userSession" "1dcb54f57c3d9775c713ea8f97ae0ebc"
8218888.25      "HSET" "userSession" "b52de307a793b35d79e914a1d7b26028" "1502348079"
4601067.25      "COMMAND"
1396710.25      "HGET" "userSession" "123"
1305825.25      "HGET" "userSession" "123"

3. 注意

由于redis MONITOR输出的只有请求开始的时间,所以在一个非常繁忙的redis实例中,根据该请求的开始时间以及下一个请求的开始时间,可以大概估算出一个请求的执行时间。由此可以看出,redis-faina统计的时间并不是十分精确的,尤其在分析一个非常闲的redis实例时,分析的结果可能差的很多。

redis性能分析工具redis-faina相关推荐

  1. redis提高oracle性能,redis性能分析与优化建议

    首先,并不是说redis是内存应用就完全没性能问题,用的不好,还是会出现各种状况,例如RDB频繁,碎片太多等. 性能分析 info信息: 在redis-cli进入登录界面后,输入info all,或者 ...

  2. golang 编写的在线redis 内存分析工具 rma4go

    redis 内存分析工具 rma4go redis是一个很有名的内存型数据库,这里不做详细介绍.而rma4go (redis memory analyzer for golang) 是一个redis的 ...

  3. redis 内存分析工具 `rma4go`

    redis 内存分析工具 rma4go redis是一个很有名的内存型数据库,这里不做详细介绍.而rma4go (redis memory analyzer for golang) 是一个redis的 ...

  4. 一个golang编写的redis内存分析工具rma4go

    redis 内存分析工具 rma4go 简介 redis是一个很有名的内存型数据库,这里不做详细介绍.而rma4go (redis memory analyzer for golang) 是一个red ...

  5. redis 内存分析工具 RMA 使用

    RMA 介绍 RMA 是一个控制台工具,用于实时扫描 Redis 密钥空间并按密钥模式聚合内存使用情况统计信息.您可以使用此工具而无需在生产服务器上进行维护.您可以按所有或选定的 Redis 类型进行 ...

  6. Linux常用性能分析工具汇总

    文章目录 性能分析工具 top pstree mpstat vmstat pidstat perf proc tcpdump bcc工具箱 cachestat cachetop memleak fil ...

  7. 4大JVM性能分析工具详解,及内存泄漏分析方案

    谈到性能优化分析一般会涉及到: Java代码层面的,典型的循环嵌套等 还会涉及到Java JVM:内存泄漏溢出等 MySQL数据库优化:分库分表.慢查询.长事务的优化等 阿里P8架构师谈:MySQL慢 ...

  8. php mysql 网站性能分析工具_如何使用工具进行线上 PHP 性能追踪及分析?

    工作了一两年的 PHPer 大概都多多少少知道一些性能分析的工具,比如 Xdebug.xhprof.New Relic .OneAPM.使用基于 Xdebug 进行 PHP 的性能分析,对于本地开发环 ...

  9. 正确使用 Android 性能分析工具——TraceView

    前面唠叨 最近公司app中有些列表在滑动的时候会有卡顿现象,我就开始着手解决这些问题,解决问题之前首先要分析列表滑动的性能瓶颈在什么地方.因为之前不会正确使用TraceView这个工具,主要是看不懂T ...

最新文章

  1. Jquery 之Ajax方法$.get() 的运用,扩展链接模型的天地
  2. 如何成为一名Android架构师,乃至高级架构师,文末有路线图
  3. 版本管理 - Git 使用入门
  4. MyEclipse8.5注册码 到2015年
  5. 探索Javascript 异步编程
  6. regex flag
  7. php json 特殊字符,PHP转义Json里的特殊字符的函数
  8. 黑匣子_NOI导刊2010提高 (对顶堆)
  9. 大数据笔记--Spark机器学习(第一篇)
  10. 企业网络管理利器-SpiceWorks(1)
  11. ChartCube - 图表魔方:阿里出品的免费在线图表制作工具,简单好用还漂亮
  12. 丹东dns服务器位置,各省主要DNS服务器对照表
  13. 塔望食业洞察|中国有机食品市场研究与发展策略思考
  14. WinForm容器内控件批量效验是否允许为空?设置是否只读?设置是否可用等方法分享
  15. 小故事让你秒懂“资产证券化”
  16. 图片水印如何去除,怎样处理带水印的图片?
  17. DUET and updated DUET(2016 and 2019)
  18. Pytorch中的DDP
  19. kof98 rom下载
  20. 多个苏宁快递的物流情况是怎么批量查询的

热门文章

  1. springboot2.彩色日志配置(自用配置ok)
  2. 收支科目不为零_管理费用,收入,成本,为什么期末余额为零?
  3. 「巫师3(The Witcher 3:Wild Hunt)」游戏个人测评
  4. 从卡塔尔到巴勒斯坦:中东各国如何实现加密货币监管(中)
  5. 微信小程序一键登录功能,使用uni-app和springboot(JWT鉴权)
  6. 【技术简史】1995-1996 开启的互联网时代范式:信息无处不在
  7. 小妞会装机 -- 一个装机软件的开发笔记(七)
  8. 阿里云盘的几个搜索平台(自用)
  9. 足球战术-高中锋战术之singleton篇
  10. SA、SD、SE 这三者的含义及区分