配額與限制

Dataflow 會使用配額和系統限制,維持公平的資源分配、防止服務過載,並協助您管理資源用量。

配額和系統限制類似,但有以下差異:

  • 「配額」有預設值,但通常可以申請調整。
  • 「系統限制」是固定值,無法變更。

Google Cloud 使用配額來確保公平性,並減少資源使用量和可用性出現劇烈波動的情況。配額會限制 Google Cloud 專案可使用的Google Cloud 資源數量,配額適用多種資源類型,包括硬體、軟體和網路元件。舉例來說,配額可能會限制能向特定服務發出的 API 呼叫次數、專案可同時使用的負載平衡器數量,或是可建立的專案數量。配額機制可防止服務過載,保障Google Cloud 使用者社群的權益,同時也有助於您管理自己的 Google Cloud 資源。

Cloud Quotas 系統具備以下功能:

如果嘗試使用的資源量超過配額限制,系統通常會阻擋該資源的存取活動,您所執行的工作就會失敗。

配額的計算通常是以 Google Cloud 專案為基準。在某個專案中使用資源,不會影響另一個專案的可用配額。在同一個 Google Cloud 專案內,所有應用程式和 IP 位址會共用配額。

詳情請參閱「Cloud Quotas 總覽」。

如要調整大部分配額,請使用 Google Cloud 控制台。詳情請參閱「要求調整配額」。

Dataflow 資源也有系統限制。而且無法變更。

Dataflow 代管服務有下列配額和限制:

  • 每個 Google Cloud 專案每分鐘最多可提出 3,000,000 項要求。
  • 每項 Dataflow 工作最多可使用 2,000 個 Compute Engine 執行個體。如未指定工作站可用區,則使用 Streaming Engine 的每項串流工作,或使用服務型 Dataflow Shuffle 的批次工作,最多可使用 4,000 個 Compute Engine 執行個體。
  • 根據預設,每個 Google Cloud 專案最多可同時執行 25 項 Dataflow 工作。
  • 每個 Dataflow worker 在特定時間間隔內可輸出的記錄數量都有上限。請參閱 Logging 說明文件,瞭解確切限制。
  • 如果選擇加入組織層級配額,根據預設,每個組織最多可同時執行 125 個 Dataflow 工作。
  • 每位使用者每分鐘最多可提出 15,000 個監控要求。
  • 每位使用者每分鐘最多可提出 60 項工作建立要求。
  • 每位使用者每分鐘最多可提出 60 項工作範本要求。
  • 每位使用者每分鐘最多可提出 60 項工作更新要求。
  • 每個 Google Cloud 專案在各區域會獲得下列重組運算單元:
    • asia-east1:48 個運算單元
    • asia-northeast1:24 個運算單元
    • asia-northeast3:32 個運算單元
    • asia-south1:64 個運算單元
    • asia-southeast1:64 個運算單元
    • australia-southeast1:24 個運算單元
    • europe-west1:640 個運算單元
    • europe-west2:32 個運算單元
    • europe-west3:40 個運算單元
    • europe-west4:640 個運算單元
    • northamerica-northeast1:512 個運算單元
    • us-central1:640 個運算單元
    • us-east1:640 個運算單元
    • us-east4:64 個運算單元
    • us-west1:384 個運算單元
    • us-west2:24 個運算單元
    • us-west3:24 個運算單元
    • 其他:16 個運算單元
    16 個運算單元足以同時重組約 10 TB 的資料。
  • Dataflow 批次工作會在 10 天後取消。

Compute Engine 配額

當您在 Dataflow 服務上執行管道時,Dataflow 會建立 Compute Engine 執行個體,以執行管道程式碼。

Compute Engine 配額因區域而異,請查看專案的 Compute Engine 配額,並根據需求要求調整下列項目:

  • CPU:在下列區域中,Dataflow 的預設機器類型為:批次工作 n1-standard-1、使用 Streaming Engine 的工作 n1-standard-2、不使用 Streaming Engine 的串流工作 n1-standard-4,以及使用彈性資源排程 (FlexRS) 的工作 n1-standard-2。FlexRS 會使用 90% 的先占 VM 和 10% 的一般 VM。
    • asia-east1
    • asia-east2
    • asia-northeast1
    • asia-northeast2
    • asia-northeast3
    • asia-south1
    • asia-south2
    • asia-southeast1
    • asia-southeast2
    • australia-southeast1
    • australia-southeast2
    • europe-central2
    • europe-north1
    • europe-west1
    • europe-west2
    • europe-west3
    • europe-west4
    • europe-west5
    • europe-west6
    • northamerica-northeast1
    • northamerica-northeast2
    • southamerica-east1
    • us-central1
    • us-central2
    • us-east1
    • us-east4
    • us-west1
    • us-west2
    • us-west3
    • us-west4

    其他區域的預設機器類型如下:批次工作為 e2-standard-2、使用 Streaming Engine 的工作為 e2-standard-2、不使用 Streaming Engine 的串流工作為 e2-standard-4,以及使用 FlexRS 的工作為 e2-standard-2。

    Compute Engine 會加總每個執行個體的 CPU 總數,藉此計算 CPU 數量。舉例來說,執行 10 個 n1-standard-4 執行個體,會計為 40 個 CPU。如要查看機型與 CPU 數量的對應關係,請參閱「Compute Engine 機型」。

  • 使用中的 IP 位址:一項專案必須有足量的 IP 位址處於「使用中」狀態,才能應付所需的執行個體數量。 舉例來說,如要使用 10 個 Compute Engine 執行個體,您必須有 10 個使用中的 IP 位址。
  • Persistent Disk:Dataflow 會將 Persistent Disk 連接至各個執行個體。
    • 批次管道的預設磁碟大小為 250 GB,串流管道則為 400 GB。根據預設,10 個執行個體需要 2,500 GB 的永久磁碟,才能執行批次工作。
    • 用來處理 Dataflow Shuffle 批次管道的預設磁碟大小是 25 GB。
    • 用來處理 Streaming Engine 串流管道的預設磁碟大小是 30 GB。
    • 執行串流工作時,Dataflow 服務目前限制每個 worker 執行個體最多只能有 15 個永久磁碟。每個永久磁碟都位於個別 Compute Engine 虛擬機器的本機。worker 與磁碟的比例為 1:1,這是最低資源分配量。
    • Compute Engine 用量是依據 worker 平均數量計算,而 Persistent Disk 用量則是依據 --maxNumWorkers 的確切值計算。系統會重新分配 Persistent Disk,使每個 worker 都有相同數量的連接磁碟。
  • 區域性代管執行個體群組:Dataflow 會將 Compute Engine 執行個體部署為區域性代管執行個體群組。您必須確保自己擁有下列相關配額可使用:
    • 每項 Dataflow 工作一個執行個體群組
    • 每項 Dataflow 工作一個執行個體範本
    • 每項 Dataflow 工作一個區域代管執行個體群組
  • 如果串流工作缺少代管執行個體群組超過 7 天,系統會取消該工作。
  • 如果批次工作缺少代管執行個體群組超過 1 小時,系統會取消工作。

額外配額

視您使用的來源和接收器而定,您可能會需要額外的配額。

  1. Pub/Sub:如果您使用的是 Pub/Sub,可能就需要額外的配額。在規劃配額時請務必留意,來自 Pub/Sub 的每則訊息都需要 3 項作業加以處理。如果您使用自訂時間戳記,則預期的作業數量應增加一倍,因為 Dataflow 會建立獨立的訂閱項目,以追蹤自訂時間戳記。
  2. BigQuery:如果您使用的是 BigQuery 的串流 API,則適用相關的配額規定和其他限制。

查看及提高配額

如要檢查 Dataflow 配額的目前使用情況,請按照下列步驟操作:

  1. 在 Google Cloud 控制台中,前往「APIs & services」(API 和服務)。
    前往「API & Services」(API 和服務)
  2. 如要查看目前的重組運算單元配額用量,請在「Quotas」(配額) 分頁中,找出表格中的「Shuffle slots」(重組運算單元) 列,然後按一下「Usage Chart」(用量圖表) 欄中的「Show usage chart」(顯示用量圖表)。

如要提高工作配額,請與Google Cloud 支援團隊聯絡,我們會將限制提高至更符合您需求的值。預設配額為專案 25 項並行 Dataflow 工作,或組織 125 項並行 Dataflow 工作。

另外,您也可以提交支援要求,指定專案中所有工作所需的並行重組資料集大小上限,藉此提高批次工作的重組運算單元配額。在要求更多的重組配額之前,請先使用 Dataflow Shuffle 執行管道,並檢查實際的重組配額使用情況。

如要執行串流工作,您可以提交支援要求給 Google Cloud Platform 支援團隊,要求提高 Streaming Engine 總處理量。請在要求中針對執行工作的每個地區,指定每分鐘要在工作站間重組的最大資料量。

Dataflow 服務也會運用 Google Cloud的各種元件,例如 BigQuery、Cloud Storage、Pub/Sub 和 Compute Engine。這些服務 (以及其他 Google Cloud服務) 會透過配額限制您在專案中可使用的資源數量上限。使用 Dataflow 時,您可能需要調整這些服務的配額設定。

Dataflow Prime

Dataflow 和 Dataflow Prime 的配額和限制相同。如果您有 Dataflow 配額,就不需要額外配額,即可使用 Dataflow Prime 執行工作。

限制

本節將說明 Dataflow 的實際工作環境限制。

限制 限額
每個管道的工作站數量上限。 2,000
工作建立要求的大小上限。如果管道說明的步驟繁多且名稱複雜,就有可能會達到這個限制。 10 MB
範本啟動要求的大小上限。 1 MB
側邊輸入資料分割的數量上限。 20,000
單一元素的大小上限 (除非適用更嚴格的條件,例如 Streaming Engine)。 2 GB
批次管道中的索引鍵大小上限。 1.5 MB
每個工作站在特定時間範圍內的記錄項目數量上限。 每 30 秒 15,000 則訊息
每項專案的自訂指標數量上限。 100
建議的儲存時間長度。 30 天
Streaming Engine 限制 金額
Pub/Sub 訊息的位元組數上限。 7 MB
單一元素值的大小上限。 80 MB
大型金鑰的大小上限。如果金鑰超過 64 KB,效能會降低。 2 MB
側邊輸入的大小上限。 80 MB
TagValue 和 TagBag 使用的狀態標記長度上限。 64 KB