快手面试题:Redis性能监控方法

发布于 2022-05-20 09:12


如果Redis性能变慢了,这个时候我们需要有一套工具来帮助我们监控是哪些指令变慢了,就像Mysql的慢查询一日一样,在Redis里也有这么一套同样的机制。


在Redis里提供了两种方式来监控执行慢的指令,分别是slowlog和latency monitor。另外Redis也有可以进行在线监控的系统TreeNMS。


slowlog

Slowlog是Redis从2.2.12版本引入的一条命令,用于记录记录慢查询执行时间的日志系统。slowlog的信息只保存在内存中,因此slowlog的效率很高,完全不用担心会影响到redis的性能。我们可以通过redis.conf和客户端指令来配置 slowlog。


1、通过redis.conf配置slowlog

//时间阈值,执行时间大于此时间会被定义成慢执行指令,并记录到slowlog,默认10000,单位微秒slowlog-log-slower-than 10000
//slowlog的总长度,128代表slowlog最多记录128个慢指令,超过则覆盖slowlog-max-len 128


2、通过客户端指令设置


查看slowlog配置

//查看slowlog的执行耗时阈值config getslowlog-log-slower-than 
//查看slowlog保存数量的阈值config getslowlog-max-len


修改slowlog配置

//设置slowlog的执行耗时阈值,单位微秒config setslowlog-log-slower-than 1000 
//设置slowlog保存指令的数量config setslowlog-max-len 1024


查看slowlog慢指令日志

//查看slowlog的总条数SLOWLOG LEN
//列出所有slowlog指令信息slowlog get
//获取2条slowlog信息slowlog get2


1) 1) (integer) 8 // slowlog唯一编号id 2) (integer) 1612318305 // 指令执行的时间 3) (integer) 15 // 指令执行的耗时(单位:微妙) 4) 1) "lpush" //指令内容 2) "ls1" //下面都是指令的参数 3) "1" 4) "2" 5) "3" 6) "4" 7) "5"


清空slowlog日志

//清除slowlog记录slowlog reset  


latency monitor


和slowlog不同的是latency monitor监控的指标维度更多,slowlog只会记录指令执行的耗时,latency monitor不仅记录指令,还会记录线程fork延时、AOF写入延时、进程调用fsync系统调用等信息。


设置延时监控的时间阈值(单位:毫秒)

CONFIG SET latency-monitor-threshold 100


查看延时记录

//查看某一种事件类型的延时记录latency history fork    //列出fork事件延时记录
//查看最后一条延时记录latency latest
//以图表的方式显示延时信息,类似曲线图LATENCY GRAPH event


//延时记录信息说明1) 1) "command" //event延时事件类型(command 指令、fork 系统调用fork....... ) 2) (integer) 1612323434 //发生的时间 3) (integer) 6000 4) (integer) 6000



支持的事件(events)command //常规命令fork //系统调用 forkfast-command //时间复杂度为“O(1)”和“O(log N)”的快命令aof-write //系统调用 writeaof-write-alone //主进程执行的 fsync 系统调用aof-fsync-always //设置“appendfsync allways”时的系统调用 fsyncexpire-cycle //过期周期eviction-cycle //淘汰周期rdb-unlink-temp-file //系统调用 unlink


清空延时记录

//重置一个或多个 events 的延迟时间序列数据为零,如果不指定参数 event,则表示重置所有的 events。latency reset command


图形化监控工具(TreeNMS)


下载TreeNMS

TreeNMS官网下载地址:http://www.treesoft.cn/dms.html。


  • 从解压目录来看,TreeNMS是部署在Tomcat服务器上,我们进入webapps目录下,看到部署了treenms项目,再进入treenms目录下,发现treenms是一个传统的JavaWeb项目。

  • 所以TreeNMS是可以在任意平台上使用,因为Java是跨平台的语言,只要安装了Java运行环境,那么就可以运行TreeNMS了。



使用TreeNMS

双击 bin\startup.bat,运行Tomcat。


2. 打开浏览器,输入http://127.0.0.1:8086/treenms

3. 默认用户名:treesoft,密码:treesoft ;用户名:admin,密码:treesoft。



5. 左侧数据仓库,将在主页面展示数据列表信息。


TreeNMS状态监控

TreeNMS提供强大的监控功能,对内存占用率等指标提供实时状态监控。


Redis数据的查看,编辑,维护


JSON数据格式化

  • JSON格式的数据具有占用空间小,更易解析等优点,大量数据会以JSON格式存入Redis中。

  • TreeNMS提供了JSON数据格式化的功能,支持格式化,缩进,层级控制,查看,方便数据分析。


在线数据备份与还原

  • Redis是支持数据存储及持久化的。

  • TreeNMS支持在线Redis数据备份、还原以及下载。

  • 细节:TreeNMS程序要与Redis安装在同一台电脑中,才能备份。



--- THE END ---


每天都能学点新知识,请我们

本文来自网络或网友投稿,如有侵犯您的权益,请发邮件至:aisoutu@outlook.com 我们将第一时间删除。

相关素材