Redis阻塞診斷基礎

 

slowlog Redis慢查詢redis

slowlog 參數
slowlog-log-slower-than: 慢查詢時間閾值,超過這個閾值的查詢將會被記錄,默認值10000,可是微妙,也即10毫秒。
slowlog-max-len:慢查詢日誌最大條數,默認值128,先進先出的隊列的形式記錄在內存中。
 
slowlog 內容查看
slowlog len查看slowlog的條數
slowlog get {n} 插入slowlog詳細內容

日誌內容說明:安全

 9) 1) (integer) 3              慢日誌標識Id
     2) (integer) 1540187867         執行日誌命令的unix時間戳。
     3) (integer) 6654             命令執行時間,單位爲微妙
     4) 1) "scan"                執行的Redis命令
        2) "125336"
        3) "MATCH"
        4) "*"
        5) "COUNT"
        6) "10000"
    5) "***.***.***.***:35096"         客戶端Ip以及端口號(Redis 4.0之後新增的)
    6) "slowlog_connection"           客戶端名稱(經過client setname 設置的名稱)
 

大對象查詢性能

  redis-cli -h -p -a --bigkeys線程

  

 

Redis 負載查詢3d

  redis-cli -h -p -a --stat,以1秒爲頻率,輸出Redis的負載信息unix

該命令輸出Redis負載狀況,
keys Redis中對象的個數
clients 客戶端個數
blocked 阻塞個數
requests 接受到的請求數累加(新增數)
connection 鏈接數日誌

  

 Redis命令統計信息對象

  redis-cli -h -p -a  info commandstats 查詢Redis各種命令的開銷統計信息。blog

  

  

持久化阻塞隊列

  Fork持久化阻塞

  對於RDB或者AOF持久化,是經過fork進程完成的,fork線程持久化時耗時過長,會阻塞Redis主線程,
  用redis-cli -h -p -a info stats 查看fork阻塞,latest_fork_usec表示最近一次持久化產生的阻塞

  

  AOF持久化阻塞

AOF持久化會每秒執行一次刷盤操做,fsync刷盤會一直等待到數據寫盤完成,若是磁盤繁忙或者磁盤自己性能形成的IO壓力,若是主線程發現距上一次fync成功超過2s,爲了安全性(數據寫盤),會產生(寫)阻塞,直到fsync刷盤完成。這種狀況會將往Redis日誌文件中寫入異常日誌。

相關文章
相關標籤/搜索