若您希望分析云數據庫 Tair(兼容 Redis)實例的性能,定位實例中的慢查詢命令或潛在的性能瓶頸等問題,您可以通過查看慢日志對實例進行分析,找到解決性能問題、優化請求的線索。慢日志記錄了執行時間超過指定閾值(slowlog-log-slower-than)的命令,默認為20毫秒,您也可以自定義該參數。
功能簡介
實例的慢日志會記錄執行時間超過指定閾值的請求,慢日志分為數據節點慢日志和代理慢日志。
Redis開源版 2.8版本實例不支持查詢慢日志功能,您可以在 中查看慢日志,但Redis開源版 2.8版本的慢日志不支持顯示客戶端地址等信息。
數據節點慢日志
數據節點慢日志中統計的命令執行時間僅包含命令在數據節點中的執行時間,不包含數據節點與代理或客戶端的通信時間以及命令在單線程隊列上的排隊延遲等。
數據節點慢日志的保留時間為72小時,無數量限制。
由于實例性能出色,通常情況下,數據節點慢日志的數量較少。
相關參數
參數名 | 說明 |
slowlog-log-slower-than | 設置數據節點慢日志閾值,默認為20000微秒(即20毫秒)。 說明 通常情況下您感知到的延遲實際會高于本參數設置的值,因為感知時間中包含了數據在客戶端、代理、數據節點之間傳輸和處理所消耗的時間。 |
slowlog-max-len | 設置最大慢日志條目數,默認為1024。 |
參數設置方法請參見設置實例參數。
代理慢日志
代理慢日志中統計的命令執行時間從代理向數據節點發出請求開始,到代理從數據節點收到相應的回復為止,包含了命令在數據節點中的執行時間、數據在網絡中的傳輸時間以及命令的排隊延遲等。
代理慢日志的保留時間為72小時,無數量限制。
由于代理慢日志反映的延遲與您在應用端感受到的延遲更相近,在排查實例超時問題時,建議多關注此類日志。
標準架構實例不提供代理慢日志。
相關參數
參數名 | 說明 |
rt_threshold_ms | 設置代理慢日志的閾值,默認為500毫秒。建議將該閾值配置為與客戶端超時時間近似的值,推薦為200毫秒到500毫秒。 |
參數設置方法請參見設置實例參數。
操作步驟
特殊慢查詢語句說明
此類請求為實例內核邏輯,與您的實際請求執行速率無直接關系,您可以忽略下述慢查詢語句。
慢查詢語句 | 說明 |
latency:eventloop | 實例運行時使用事件驅動模式,一次事件循環包括命令讀取、解析、執行和返回結果整個過程。 |
latency:pipeline | 實例支持客戶端的pipeline執行模式,該模式下客戶端發送一批命令,待所有命令執行完后批量返回結果。集群版的代理服務器(Proxy)默認采用Pipeline模式向后端數據節點發送請求。 |
latency:fork |
|
相關API
API | 說明 |
查詢實例在指定時間內產生的慢日志。 |