資源使用率不均的子表
為協助您排解效能問題,Bigtable 提供辨識及觀察叢集中熱門平板電腦的功能。本頁面說明熱門平板電腦,並介紹如何取得熱門平板電腦清單,以及在哪些情況下識別熱門平板電腦很有幫助。閱讀本頁面之前,請先閱讀 Bigtable 總覽。
用來取得熱門平板電腦清單的方法名稱,會因使用的語言而異。為簡化說明,本文會以 RPC Cloud Bigtable Admin API 名稱 ListHotTablets
指稱這個方法。你可以使用下列方式取得熱門平板電腦清單:
找出過熱的平板電腦有助於執行下列工作:
瞭解資源使用率不均的子表
Bigtable 資料表會分割成連續資料列所組成的區塊,稱為「子表」,以協助平衡查詢的工作負載。每個子表會與一個節點相關聯,而這些資料列上的作業會在該節點上執行。為提升效能,系統會根據存取模式分割或將平板電腦移至不同節點。系統會根據使用者存取模式 (讀取、寫入和掃描作業),在節點之間重新平衡平板電腦。如要進一步瞭解負載平衡,請參閱「Cloud Bigtable 如何長期最佳化您的資料」。
熱門平板電腦是指節點 CPU 使用率過高的平板電腦,因為相較於其他平板電腦,這類平板電腦使用的 CPU 百分比過高。節點使用量不平衡可能會導致延遲和複寫延遲。
平板電腦過熱最常見的原因是熱點,也就是應用程式經常存取表格中彼此靠近的資料列。熱點通常是因為結構定義設計未經最佳化,無法在資料表中分散應用程式的存取模式。如要瞭解如何設計資料列鍵,避免發生熱點,請參閱結構定義設計最佳做法。
如要取得熱門平板電腦清單,您必須獲派具備 bigtable.viewer
權限的角色。
輸出
ListHotTablets
方法會傳回執行個體中指定叢集的下列資料。
- 平板電腦名稱:Bigtable 指派給熱門平板電腦的專屬 ID。gcloud CLI 不會顯示這個欄位。
- 表格。與熱門平板電腦相關聯的表格 ID。
- CPU 用量。與熱門平板電腦相關聯的節點,在該一分鐘間隔內的平均 CPU 使用率 (以百分比表示)。這個百分比是從開始時間到結束時間,寫入 CPU 和讀取 CPU 總和的平均值。
- 開始時間。熱門平板電腦期間的開始時間。
- 結束時間。 熱銷平板電腦期間的結束時間。
- 起始索引鍵。熱門平板電腦中的第一個資料列索引鍵。
- 結尾索引鍵。熱門平板電腦中的最後一個資料列索引鍵。如果開始和結束鍵相同,系統會附加
\000
後置字元,表示平板電腦跨越單一資料列。
索引鍵會在平板電腦中依字典順序排序,因此開始索引鍵和結束索引鍵之間的任何索引鍵都會包含在該熱門平板電腦中。
熱點是以一分鐘的解析度計算,因此平板電腦可能會再次出現在輸出內容中。換句話說,單一平板電腦可能在數分鐘內都處於高溫狀態。
根據預設,ListHotTablets
會搜尋過去 24 小時的資料。如要在特定時間範圍內搜尋,請提供開始時間和結束時間。
最多可傳回 50 個熱門平板電腦。如要變更這項設定,請提供頁面大小。
如果叢集中沒有任何平板電腦處於熱狀態,這個方法會傳回空白清單。
使用 gcloud CLI 的範例
複製這個範例之前,請先安裝 gcloud
CLI。
如要查看特定叢集的熱門平板電腦清單,請在 Cloud Shell 或本機終端機視窗中執行 hot-tablets list
指令。
gcloud bigtable hot-tablets list CLUSTER_ID --instance INSTANCE_ID
更改下列內容:
CLUSTER_ID
:叢集的永久 IDINSTANCE_ID
:執行個體的永久 ID
如果叢集中的任何平板電腦過熱,終端機會顯示類似以下的輸出內容。叢集中的熱門平板電腦會依 CPU 使用率遞減排序。
TABLE CPU_USAGE START_TIME END_TIME START_KEY END_KEY test-data 89.3 2021-12-14T01:19:57+00:00 2021-12-14T01:20:57+00:00 user29333893046… user29333893046… test-data 22.8 2021-12-14T01:04:59+00:00 2021-12-14T01:06:59+00:00 user29333893046… user29345657428… test-data 20.9 2021-12-14T01:18:56+00:00 2021-12-14T01:20:56+00:00 user54519105346… user545293 test-data 16.5 2021-12-14T01:18:56+00:00 2021-12-14T01:20:56+00:00 user49196524328… user49206
平板電腦熱資料的用途
找出叢集中的熱門平板電腦,有助於排解效能問題。您可以搭配其他監控工具使用 ListHotTablets
方法,例如 Bigtable 的Key Visualizer 診斷工具。
找出有問題的資料列鍵
您可以使用 ListHotTablets
識別特定資料列鍵和資料列範圍。這有助於觀察可能導致熱點的存取模式。
舉例來說,假設資料表的資料列索引鍵結構定義為 [user_id]#[event_timestamp]
,使用者 ID 和時間戳記之間以井號分隔。取得熱門平板電腦清單,有助於判斷特定使用者 ID 或事件時間戳記是否導致熱點。找出存取模式後,您就能採取進一步行動,例如重新設計資料列索引鍵或表格,在索引鍵空間中更平均地分配用量。在這個範例中,如果使用者 ID 單調遞增,因此造成熱點,您可以改用其他順序指派使用者 ID,或改用通用不重複 ID (UUID)。
如果開始和結束資料列索引鍵相同,且結束資料列索引鍵附加 \000
字尾,就會建立單一資料列平板電腦。如果這個子表接收到不成比例的大量流量,就會導致資源使用率不均現象。
以分鐘為單位觀察熱點
您可以搭配 Key Visualizer 的熱視圖使用資源使用率不均的子表清單。Key Visualizer 是觀察鍵空間存取模式大方向的好工具,但 ListHotTablets
可提供更精細的資訊。
檢查 Key Visualizer 中的熱視圖後,您可以進一步探索特定熱點。由於 Key Visualizer 會執行數週,因此熱點資料會以 15 分鐘為間隔進行彙整。此外,多個平板電腦可能會合併在同一個 Key Visualizer 鍵空間中。
使用 Key Visualizer 找出發生資源使用率不均情形的時間範圍後,您就可以執行 ListHotTablets
,在鍵和時間空間中取得更精細的資料。更精細的資料特別適合用於定期用量。ListHotTablets
可以找出 KeyVisualizer 無法偵測到的短暫熱點。
找出叢集中的問題資料表
由於 Key Visualizer 是在資料表層級運作,因此如果叢集有多個資料表,這項工具不一定是排解問題的最佳選擇。ListHotTablets
是在叢集層級運作,因此可用於找出 CPU 使用率高的資料表,縮小問題範圍。