快手面试题: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 //系统调用 fork
fast-command //时间复杂度为“O(1)”和“O(log N)”的快命令
aof-write //系统调用 write
aof-write-alone //主进程执行的 fsync 系统调用
aof-fsync-always //设置“appendfsync allways”时的系统调用 fsync
expire-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 我们将第一时间删除。
相关素材