Redis之延遲監控


延遲監控

  • 參考官方文檔
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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM