Aquester 阅读(51) 评论(0)
### 延迟监控


* **参考官方文档**


|  https://redis.io/topics/latency-monitor  |
| :----: |


* **启用 redis 延迟监控**


|  CONFIG SET latency-monitor-threshold 100  |
| :----: |


单位:毫秒,100表示一百毫秒。如果将 latency-monitor-threshold 的值设置为 0,则表示关闭延迟监控。


* **子命令**


1)LATENCY LATEST


返回所有事件的最新延迟样本


2)LATENCY HISTORY event


返回最多160条的给定 event 的延迟时间序列(延迟发生时的时间戳和延迟毫秒数)


3)LATENCY RESET event


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


4)LATENCY GRAPH event


以文本图表方式展示


5)LATENCY DOCTOR


回复人类可读的延迟分析报告


6)LATENCY HELP


查看使用帮助


* **支持的事件(events)**


|命令名|命令说明|
|:----:|:----:|
|command|常规命令|
|fast-command|时间复杂度为“O(1)”和“O(log N)”的快命令|
|fork|系统调用 fork|
|aof-stat|系统调用 stat|
|aof-write|系统调用 write|
|aof-rename|系统调用 rename|
|aof-fsync-always|设置“appendfsync allways”时的系统调用 fsync|
|aof-write-active-child|子进程执行的系统调用 fsync|
|rdb-unlink-temp-file|系统调用 unlink|
|active-defrag-cycle |主动碎片整理周期|
|aof-rewrite-diff-write||
|aof-write-alone|主进程执行的 fsync 系统调用|
|aof-write-pending-fsync||
|expire-cycle|过期周期|
|eviction-cycle|淘汰周期|
|eviction-del||


* **redis-cli 对延迟监控的支持**


与延迟监控有关的参数:


|参数名|参数说明|
|:----:|:----:|
|--latency|以文本方式显示持续采样服务器延迟时间|
|--latency-dist|以 256 色的频谱方式显示,如果和参数“--latency”同时使用,则被忽略|
|--latency-history|持续采集并每隔一段时间(默认15秒,可参数“-i”设置其它值)输出一个记录|


采样的原理是向目标 redis-server 发向 PING 命令来获得延迟时间。


### 慢日志查询


1)启用慢日志


|  CONFIG SET slowlog-log-slower-than 100 |
| :----: |


单位:微秒(注意不是毫秒),100表示一百微秒,表示执行时长超过100微秒的命令才会被记录下来。如果值为负数则表示关闭记录慢日志,如果值为0表示记录所有命令的慢日志。


记录慢日志不会有文件操作,所以对性能影响非常小,因此可考虑记录所有命令(将 slowlog-log-slower-than 值设置为 0 即可)。


2)设置记录的慢日志数量


|  CONFIG SET slowlog-max-len 10 |
| :----: |


上述表示记录最近 10 条慢日志。


3)查询慢日志


|  SLOWLOG GET |
| :----: |


不带参数返回所有的(配置 slowlog-max-len 决定)慢日志,可指定参数只返回最新的 N 条慢日志,如最新的 10 条:


|  SLOWLOG GET 10 |
| :----: |


4)查询当前慢日志条数


|  SLOWLOG LEN |
| :----: |