儲存空間使用率指標

本頁說明 Spanner 提供的儲存空間用量指標。

根據預設,資料會儲存在固態硬碟 (SSD) 儲存空間。您可以選擇使用分層儲存空間,將資料儲存在 SSD 或硬碟 (HDD)。詳情請參閱「分層儲存空間總覽」。

儲存空間指標

Spanner 提供下列儲存空間指標:

  • 資料庫儲存空間總計:儲存在資料庫或執行個體中資料庫的資料量。這類檔案會計入儲存空間上限
  • 備份儲存空間總計:與執行個體或資料庫相關聯的備份所儲存的資料量。備份儲存空間會分開儲存和計費,儲存量沒有限制。

您可以在 Google Cloud 控制台Cloud Monitoring 控制台中查看這些指標的圖表。

此外, Google Cloud 控制台的「執行個體」和「執行個體詳細資料」頁面也會顯示資料庫儲存空間使用率。

前往「Instances」(執行個體) 頁面

多版本儲存空間

如果您經常使用先前的儲存空間指標檢查資料大小,有時可能會遇到與預期不符的結果。舉例來說,即使您最近未移除任何資料,資料庫的總儲存空間也可能會明顯減少。反之,您可能會發現執行大量刪除作業後,大小仍相對不變。

這些影響源自於 Spanner 支援多版本儲存空間。 多版本儲存空間會將所有已刪除或覆寫的資料保留在儲存空間中,並在一段時間內提供這些資料,以便啟用可讀取先前資料值的功能,例如過時讀取時間點復原。 執行大量資料刪除作業後,資料庫的儲存空間指標不會立即反映變更。同樣地,資料庫總大小無預警減少,可能表示 Spanner 的例行資料壓縮程序最近清理了大量資料,這些資料早在幾天前就已刪除或覆寫。

Spanner 會確保在 version_retention_period 選項定義的時間間隔內 (預設為一小時),刪除或覆寫的資料仍可繼續使用。系統每隔幾天就會自動執行背景程序,永久移除所有早於這個版本保留間隔的過時資料。

分割的影響

在負載量高或熱點期間,Spanner 會使用分割等技術,更平均地將 CPU 使用率分配到佈建的運算資源。分割作業的副作用之一是儲存空間用量暫時增加。如果資料正在分割,在每週的壓縮週期中,系統可能會保留最多兩個原始分割範圍的副本,直到週期有機會縮減分割並捨棄額外的資料副本為止。

儲存空間統計資料

通常在幾分鐘內,所有擷取到 Spanner 的資料都會顯示在儲存空間統計資料中。不過在某些情況下,即使資料可供讀取 (並透過預先寫入記錄等技術確保耐久性),仍需要較長時間才會顯示在儲存空間用量統計資料中,最多可能需要幾天。

這是因為所有擷取的資料 (除了在提交期間為確保耐久性和復原而記錄的副本) 都會暫時存放在記憶體中,然後在背景寫入實體儲存空間。可駐留在記憶體中的資料量,以及資料在寫入實體儲存空間前駐留在記憶體中的時間長度,取決於運算大小和工作負載大小與效能。

建立儲存空間快訊

您可以在 Cloud Monitoring 控制台中建立儲存空間快訊。我們也提供簡單的方法,讓您直接從 Google Cloud 控制台建立資料庫儲存空間快訊。圖表中的「建立快訊政策」連結 (請參閱螢幕截圖) 會將您帶往 Cloud Monitoring 主控台的建立快訊頁面,並自動預先填寫相關欄位。

主控台中的 Spanner 指標畫面,顯示標示為「建立快訊政策」的按鈕。

建議您將資料庫總儲存空間維持在儲存空間上限以下。這可確保 Spanner 有足夠的空間正常運作,並對資料執行例行維護作業。

如果即將達到上限,Spanner 可能會禁止您執行會超出上限的作業,例如:

  • 從備份還原資料庫。
  • 修改資料庫的結構定義 (例如新增索引)。
  • 降低執行個體的運算能力

如果超出儲存空間上限,Spanner 會嘗試正常運作,但可能會因資源壓力而效能降低或失敗。如果接近或超過建議上限,Google Cloud 控制台在顯示受影響的執行個體時,會顯示「執行個體已達到儲存空間容量上限,活動效能可能會降低」警告。

您也可以在 Cloud Monitoring 中建立快訊,以便接收通知。

降低資料庫儲存空間用量

如要減少執行個體的資料庫儲存空間用量,可以採取下列做法:

  • 增加運算能力
  • 刪除未使用的資料庫
  • 刪除資料庫中的資料。雖然從資料可見度來看,資料刪除作業會立即生效,但可能要等到 Spanner 壓縮資料後,才會影響儲存空間用量指標。如果刪除大量資料,通常會在 12 小時內壓縮資料,否則會在 1 週內壓縮。因此,您可能會發現資料刪除後,指標過一段時間才會顯示變更。

一般來說,我們建議您先為執行個體新增運算容量,提高運算能力後,您就可以調查並解決儲存空間使用率過高的根本原因。

如要自動執行這項程序,可以建立應用程式來監控資料庫儲存空間使用率,然後使用 UpdateInstance 方法,視需要新增及移除運算容量。

後續步驟