全部產品
Search
文件中心

Database Autonomy Service:緩衝分析

更新時間:Jul 27, 2024

資料庫自治服務DAS支援緩衝分析功能,通過分析Redis的備份檔案,可以快速發現執行個體中的大Key,協助您掌握Key在記憶體中的佔用和分布、Key到期時間等資訊,為您的最佳化操作提供資料支援,協助您避免因Key傾斜引發的記憶體不足、效能下降等問題。

功能說明

緩衝分析功能基於Redis持久化策略RDB(Redis Database),現已支援Redis 7.0。

使用限制

  • 目標資料庫執行個體已接入DAS,且執行個體接入狀態為接入正常

  • 不支援Tair磁碟型執行個體。

  • 只支援分析Redis資料結構和以下Tair自研資料結構:TairString、TairHash、TairGIS、TairBloom、TairDoc、TairCpc、TairZset,暫不支援分析其他Tair自研資料結構。

  • 如果目標執行個體規格已發生變更,則不支援分析執行個體變更前的備份檔案。

操作步驟

  1. 登入DAS控制台

  2. 在左側導覽列中,單擊執行個體監控

  3. 找到目標執行個體,單擊執行個體ID,進入目標執行個體詳情頁。

  4. 在左側導覽列選擇請求分析 > 緩衝分析

  5. 緩衝分析頁右側,單擊立即分析

  6. 緩衝分析對話方塊中,設定如下參數。

    zs

    配置

    說明

    選擇分析節點

    選擇需要執行緩衝分析的節點ID。

    說明

    您可以選擇分析整個執行個體,也可以只選中某個節點進行分析。

    分析方式

    根據需要,選擇不同的備份檔案進行分析:

    • 使用上一個備份檔案:分析當前最新的備份檔案。

    • 建立備份, 並使用最新的備份進行分析:立即建立一次備份,待備份完成後對其進行分析,該方式可分析執行個體當前的狀態。

    • 選擇歷史備份檔案:允許選擇並分析任意歷史備份檔案。

    說明

    在分析已存在的備份檔案時,請確認備份檔案的時間點,是否符合預期。

    分隔字元

    根據需要,輸入用於識別Key首碼的分隔字元。當分隔字元為預設的:;,_-+@=|#時,不需要輸入。

  7. 單擊確定

  8. 緩衝分析列表找到已完成的分析任務,在右側操作欄中,單擊詳情,查看如下分析結果:

    • 基本資料:目標執行個體基本屬性和分析方法等情況。

    • 相關節點:Redis社區版叢集架構內各個節點的記憶體情況和Key統計資訊。

      說明

      只有選擇分析整個Redis社區版叢集架構執行個體時,才會展示該資訊。

    • 詳情:目標執行個體的記憶體佔用情況、Key記憶體佔有的近一周日均增長量Key總數量Key記憶體佔有情況Key數量分布情況Elements記憶體佔用情況Elements數量分布情況Key到期時間分布 (記憶體)Key到期時間分布 (數量),以及記憶體佔有量、總數量、Key首碼在前100的大Key資訊。

常見問題

  • Q:為什麼緩衝分析結果展示的Key記憶體佔有會比實際使用的記憶體小?

    A:因為緩衝分析結果實際只是解析了Key和對應value在RDB中序列化後佔用的大小,這個只佔用了used_memory中的一部分,used_memory還包含了如下部分:

    • Key和value所對應的struct和指標大小。在jemalloc分配後,位元組對齊部分所佔用的大小也沒計算在used_memory中,例如在2.5億Key的數量下,struct、指標、位元組對齊這三部分的大小加起來約有2~3 GB。

    • 用戶端輸出緩衝區、查詢緩衝區、AOF重寫緩衝區和主從複製的backlog,這些也沒計算到緩衝分析中。

  • Q:Redis緩衝分析的首碼分隔字元是什嗎?

    A:目前Redis緩衝分析的首碼分隔字元是按照固定的首碼:;,_-+@=|# 區分的字串。

  • Q:為什麼Redis緩衝分析中String類型Key的元素數量和元素長度是一樣的?

    A:在Redis緩衝分析中,針對String類型的Key,其元素數量就是其元素長度。

  • Q:如何處理報錯decode rdbfile error: rdb: unknown object type 116 for key XX

    A:該報錯表示Redis執行個體裡面存在非標準的Bloom結構,您可以把這些Bloom結構的Key刪掉,或者將Redis執行個體升級到Redis企業版(Tair),並將非標準的Bloom結構修改為TairBloom結構。

  • Q:如何處理報錯decode rdbfile error: rdb: invalid file format

    A:該報錯表示所選的備份檔案無效,請檢查執行個體是否在該備份時間點後進行了變更配置;或者執行個體是否開啟了透明資料加密TDE(該功能無法分析已加密的資訊)。

  • Q:如何處理報錯decode rdbfile error: rdb: unknown module type

    A:該報錯表示備份檔案中存在Tair自研資料結構,暫不支援分析。

  • Q:如何處理建立備份, 並使用最新的備份進行分析後報錯XXX backup failed

    A:該執行個體當前存在正在執行的BGSAVE或BGREWRITEAOF命令,導致建立用於緩衝分析任務的備份時出現了失敗的情況。建議您選擇業務低峰期建立備份, 並使用最新的備份進行分析或者選擇歷史備份檔案進行分析。

  • Q:為什麼Stream資料結構的緩衝分析結果是實際值的數倍?

    A:Stream資料結構底層使用基數樹(Radix Tree)和緊湊列表(listpack),資料結構複雜。緩衝分析功能目前無法精確獲得此類複雜資料結構的記憶體佔用情況,只能進行估算,因此緩衝分析結果存在偏差。

    說明

    緩衝分析結果的偏差僅為資料統計偏差,不影響資料庫執行個體的功能。

相關文檔

當您在Redis控制台使用緩衝分析功能時,請參見離線全量Key分析

相關API

API

描述

CreateCacheAnalysisJob

建立緩衝分析任務。

DescribeCacheAnalysisJob

查詢快取分析任務詳情。

DescribeCacheAnalysisJobs

查詢快取分析工作清單。