通過離線全量Key分析功能來分析云數據庫 Tair(兼容 Redis)的備份文件,可以快速發現實例中的大Key,幫助您掌握Key在內存中的占用和分布、Key過期時間等信息,為您的優化操作提供數據支持,幫助您避免因Key傾斜引發的內存不足、性能下降等問題。
該功能由CloudDBA的緩存分析提供。
注意事項
單副本實例類型或磁盤型實例不支持該功能。
如果實例規格已發生變更,則不支持分析實例變更前的備份文件。
離線全量Key分析功能只支持分析Redis開源版數據結構和以下Tair自研數據結構:TairString、TairHash、TairGIS、TairBloom、TairDoc、TairCpc、TairZset,若存在其他Tair自研數據結構會導致分析任務失敗。
操作步驟
訪問實例列表,在上方選擇地域,然后單擊目標實例ID。
在左側導航欄,單擊 。
離線全量Key分析頁簽默認展示最近一天緩存分析結果列表,您可以根據需求選擇其他時間段。
在離線全量Key分析頁簽,單擊頁面右側的立即分析。
在彈出的對話框中,設置分析的節點與方式。
參數
說明
選擇分析節點
選擇需要執行緩存分析的節點ID。
說明您可以選擇分析整個實例,也可以只選中某個節點進行分析。
分析方式
您可以按照界面提示,選擇不同的備份文件。
使用上一個備份文件:分析當前最新的備份文件。
選擇歷史備份文件:允許選擇并分析任意歷史備份文件。
新建備份, 并使用最新的備份進行分析:立即新建一次備份,待備份完成后對其進行分析,該方式可分析實例當前的狀態。
說明在分析已存在的備份文件時,請確認備份文件的時間點,是否符合預期。
分隔符
根據需要,輸入用于識別Key前綴的分隔符。當分隔符為默認的
:;,_-+@=|#
時,不需要輸入。單擊確定。
系統執行分析并展示分析狀態,您可以單擊刷新以更新分析狀態。
找到已完成的分析任務,單擊其操作列的詳情展示詳細的分析結果。
基本信息:展示實例基本屬性和緩存分析方法等信息。
相關節點:展示實例內各節點的內存情況和Key統計信息。
說明當實例為集群或讀寫分離架構,且選擇的分析節點為整個實例時,詳情頁才會展示相關節點信息并提供節點選擇的功能。
詳情:展示實例或節點的Key內存占有情況、Key數量分布情況、Key中元素的內存占用和分布情況、Key過期時間分布、大Key排名等信息。
常見問題
Q:若使用RAM賬號,操作時提示權限不足怎么辦?
A:請對RAM賬號進行授權并重試,更多信息請參見常見自定義權限策略場景及示例。
Q:在同一個實例中,為什么執行離線分析任務的速度時快時慢?
A:離線分析任務是異步任務,分析速度還與CloudDBA的當前總任務數有關,當總任務數較多時,該離線分析任務需排隊等待,分析任務的耗時就會變長。
Q:如何處理報錯
decode rdbfile error: rdb: unknown object type 116 for key
?A:該報錯表示實例中存在非標準的Bloom結構,暫不支持分析。
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:為什么緩存分析結果展示的Key內存占有會小于實際已用內存?
A:因為緩存分析僅解析Key與其Value在RDB中序列化后占用的大小,這僅占實例已用內存的一部分。除此之外,實例已用內存還包含了如下內存占用:
在JeMalloc分配內存后,字節對齊部分所占用的內存大小,以及Key與其Value所對應的Struct、指針大小等。例如在2.5億個Key時,字節對齊、Struct和指針,這三部分的內存大小加起來約有2~3 GB。
客戶端輸出緩沖區、查詢緩沖區、AOF重寫緩沖區和主從復制的Backlog等。
相關API
API接口 | 說明 |
創建緩存分析任務。 | |
查詢緩存分析任務詳情。 | |
查詢緩存分析任務列表。 |