儲存空間使用率指標

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

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

儲存空間指標

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

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

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

此外,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 小時內,但某些情況下可能需要較長時間),儲存空間用量指標不會受到影響。因此,您可能會發現資料刪除後,指標變更會延遲顯示。

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

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

後續步驟