延遲監控
- 參考官方文檔
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 |
---|