運算資源、節點和處理單元

本頁面說明 Spanner 運算能力,以及用於量化運算能力的兩個測量單位:節點和處理單元。

運算能力

運算能力會定義伺服器和儲存空間資源的數量,包括可供執行個體中資料庫使用的磁碟負載容量。磁碟負載僅適用於存取 HDD 儲存空間中資料的工作負載。詳情請參閱分層儲存空間總覽

建立執行個體時,您可以指定其運算資源為處理單元數量或節點數量,其中 1000 個處理單元等於 1 個節點。這項指定的運算容量會在每個代管資料備用資源的區域中完整提供 (複製)。舉例來說,如果您為區域執行個體 (通常在三個區域中設有複本) 佈建 1000 個處理單元,則這三個區域都會擁有 1000 個處理單元的完整運算能力,用於提供複本服務;總共的處理單元不會在區域中劃分或分配。除非您建立的執行個體運算能力小於 1, 000 個處理單元 (1 個節點),否則測量單位的選擇並無影響。在這種情況下,您必須使用處理單元指定執行個體的運算能力。

在執行個體上定義或變更運算資源時,您必須以 100 的倍數 (100、200、300 等) 指定處理單元。處理單元數量達到 1, 000 個時,您可以以 1, 000 個處理單元為單位 (1, 000、2,000、3, 000 等) 或節點 (1、2、3 等) 指定更大的數量。

處理單元少於 1,000 個的執行個體,是針對較小資料量、查詢和工作負載而建構。它們擁有的運算資源有限,可能會導致某些工作負載出現非線性調度和效能問題。這些執行個體的延遲時間也可能會間歇性增加。

資料儲存空間上限

配額和限制所述,為確保資料庫存取作業的高可用性和低延遲,Spanner 會使用執行個體的運算能力,依據下列規範決定儲存空間限制:

  • 如果執行個體的節點數少於 1 個 (1,000 個處理單元),Spanner 會為資料庫中的每 100 個處理單元分配 1024.0 GiB 的資料。
  • 對於 1 個節點以上的執行個體,Spanner 會為每個節點分配 10 TiB 的資料。

舉例來說,如果要為 300 GB 的資料庫建立執行個體,您可以將運算能力設為 100 個處理單元。這麼多的運算能力可確保執行個體不超過限制,直到資料庫成長到超過 1024.0 GiB 為止。當資料庫達到這個大小時,您就必須再新增 100 個處理單元,讓資料庫能繼續成長。否則,Spanner 可能會拒絕寫入資料庫。詳情請參閱「資料庫儲存空間使用率建議」。

Spanner 會針對執行個體實際使用的儲存空間收費,而非其總儲存空間配額。

成效

特定運算容量可提供的讀取與寫入作業最高總處理量值,取決於執行個體設定、結構定義和資料集特性。詳情請參閱「成效總覽」。

您可以使用處理單元少於 1,000 個的執行個體,處理較小型資料、查詢和工作負載。對於較大的工作負載,其有限的運算資源可能會導致非線性縮放和效能,並導致延遲時間間歇性增加。

運算能力和執行個體設定

地區、雙區域和多區域設定所述,Spanner 會將執行個體分散至一或多個區域的區域,以提供高效能和高可用性。因此,Spanner 也會將執行個體的運算能力提供的伺服器資源進行分配。

下圖說明這項伺服器資源分配方式。

在地區執行個體設定中建立的兩個執行個體

下圖顯示兩個設有區域設定的執行個體:

  • 「Instance-A」 顯示 1000 個處理單元 (1 個節點) 的執行個體,以及在三個可用區中消耗伺服器資源的運算能力分配情形。
  • Instance-B 顯示 2000 個處理單元 (2 個節點) 的執行個體,其運算能力分布圖顯示在三個區域中消耗伺服器資源。

請注意下列圖表中的事項:

  • 針對每個執行個體,Spanner 會在區域設定的每個區域中分配伺服器資源。每個區域伺服器資源都會使用該區域中的資料備用資源。如要瞭解執行個體設定中的資料備用資源,請參閱區域、雙區域和多區域設定。如要瞭解 Spanner 如何讓這些資料副本保持同步,請參閱「複寫」。

  • 在單一方塊中顯示「Instance-A」的伺服器資源,而在兩個部分的方塊中顯示「Instance-B」的資源。這項差異說明 Spanner 會針對不同大小的執行個體分配不同的伺服器資源:

    • 如果執行個體的處理單元數量為 1,000 個 (1 個節點) 以下,Spanner 會在每個區域的單一伺服器工作中分配伺服器資源。
    • 如果執行個體的處理單元超過 1,000 個 (1 個節點),Spanner 會在每個區域的多個伺服器工作中分配伺服器資源,每 1, 000 個處理單元一個工作。在每個區域使用多個伺服器工作可提供更佳效能,並讓 Spanner 建立資料庫分割,進而提供更出色的效能。

變更運算能力

建立執行個體後,您可以稍後提高其運算能力。在大多數情況下,要求會在幾分鐘內完成。在極少數情況下,擴大作業可能需要最多一小時才能完成。

在大多數情況下,您也可以降低運算能力。在某些情況下,您無法降低運算能力:

  • 移除運算資源時,每 1,000 個處理單元 (1 個節點) 的執行個體必須儲存超過 10 TiB 的資料。
  • 根據歷來的使用模式,Spanner 為執行個體的資料建立了大量分割項目,在某些罕見情況下,Spanner 在移除運算能力後無法管理分割項目。

在後一種情況下,您可以嘗試逐漸減少運算能力,直到找到 Spanner 管理所有分割執行個體所需的最低運算能力。如果使用模式發生變更,執行個體不再需要這麼多分割作業,Spanner 可能會最終將部分分割作業合併,讓您在一、兩週後嘗試進一步減少執行個體的運算資源。

移除運算能力時,請在 Cloud Monitoring 中監控 CPU 使用率和要求延遲時間,確保區域執行個體的 CPU 使用率維持在 65% 以下,多區域執行個體的各個區域則維持在 45% 以下。移除運算容量時,要求延遲時間可能會暫時增加。

Spanner 沒有暫停模式。Spanner 運算資源是專屬資源,即使您沒有執行工作負載,Spanner 也會頻繁執行背景工作,以最佳化和保護您的資料。

您可以使用 Google Cloud 控制台Google Cloud CLI 或 Spanner 用戶端程式庫來變更運算能力。詳情請參閱「變更運算容量」。

運算能力與複本

如果您需要擴充執行個體的伺服器和儲存空間資源,請提高執行個體的運算能力。請注意,增加運算容量並不會增加備援機制的數量 (在指定的執行個體設定中為固定值),而是增加執行個體中每個備援機制所擁有的資源。增加運算資源可為每個備用資源提供更多 CPU 和 RAM,進而增加備用資源的總處理量,也就是每秒可以執行更多的讀取和寫入作業。

後續步驟