設定 Dataflow 工作站 VM

您可以自訂 worker VM,根據管道的記憶體和處理需求,自訂運算和儲存空間資源。這有助於最佳化工作效能,並管理資源密集型工作負載的基礎架構成本。

根據預設,Dataflow 會選取執行工作的 worker VM 機器類型,以及永久磁碟的大小和類型。如要自訂這些資源,請在建立工作時設定下列管道選項。

機型

Dataflow 啟動 worker VM 時使用的 Compute Engine 機器類型。您可以使用 x86 或 Arm 機型,包括自訂機型。

Java

設定 workerMachineType 管道選項。

Python

設定 machine_type 管道選項。

Go

設定 worker_machine_type 管道選項。

  • Arm 支援 Tau T2A、C4A 和 N4A 機器系列。如要進一步瞭解如何使用 Arm VM,請參閱「在 Dataflow 中使用 Arm VM」。

  • 系統會自動支援 x86 VM。

  • 不建議將共用核心機型 (例如 f1-micro、g1-small、e2-micro、e2-small 和 e2-medium) 用於 Dataflow 工作,且 Dataflow 服務水準協議不支援這類機型。

  • 計費方式與機型系列無關。詳情請參閱「Dataflow 定價」。

  • 對於 f1-micro 和 g1-small 機器類型,Dataflow 會以 1 個 vCPU 的費率計費;對於 e2-micro、e2-small 和 e2-medium 機器類型,Dataflow 會以 2 個 vCPU 的費率計費。即使共用核心機型提供的持續 CPU 作業時間,少於計費的 vCPU,仍會按照這些費率計費。

自訂機型

如要指定自訂機型,請使用下列格式:FAMILY-vCPU-MEMORY。請替換下列項目:

  • FAMILY。請使用下列其中一個值:
    機器系列值
    N1custom
    N2n2-custom
    N2Dn2d-custom
    E2e2-custom
  • vCPU:vCPU 數量。
  • MEMORY:記憶體,以 MB 為單位。

如要啟用擴充記憶體,請將 -ext 附加至機型。例如:n2-custom-6-3072、n2-custom-2-32768-ext。

如要進一步瞭解有效的自訂機型,請參閱 Compute Engine 說明文件中的「自訂機型」。

不支援 Hyperdisk Balanced 的機型

使用 Hyperdisk Balanced 磁碟時,工作可能會失敗,並顯示類似下列的錯誤:

hyperdisk-balanced disk type cannot be used by MACHINE_TYPE machine type

如果選取的機型與 Hyperdisk Balanced 不相容,就會發生這種情況。如果未指定機器類型,或使用 autoVM,也可能發生這項錯誤。如要查看與 Hyperdisk Balanced 相容的機器類型清單,請參閱「關於 Hyperdisk Balanced」。

磁碟類型

要使用的永久磁碟類型。

使用 Streaming Engine 或 N4 機器類型時,請勿指定 Persistent Disk。

Java

設定 workerDiskType 管道選項。

Python

設定 worker_disk_type 管道選項。

Go

設定 disk_type 管道選項。

如要指定磁碟類型,請使用下列格式:compute.googleapis.com/projects/PROJECT_ID/zones/ZONE/diskTypes/DISK_TYPE。

更改下列內容:

  • PROJECT_ID:專案 ID
  • ZONE:Persistent Disk 的可用區,例如 us-central1-b
  • DISK_TYPE:磁碟類型,例如 pd-ssd、pd-standard 或 hyperdisk-balanced

詳情請參閱 Compute Engine API 參考資料頁面的 diskTypes。

佈建 IOPS 和處理量

使用 Hyperdisk Balanced 磁碟時,您可以佈建 IOPS 和處理量,不受磁碟大小影響。如要佈建 IOPS 和處理量,請使用下列管道選項:

Java

  • 如要佈建 IOPS,請設定 diskProvisionedIOPS 管道選項。
  • 如要以 MiB/s 為單位佈建輸送量,請設定 diskProvisionedThroughput 管道選項。

Python

  • 如要佈建 IOPS,請設定 disk_provisioned_iops 管道選項。
  • 如要以 MiB/s 為單位佈建輸送量,請設定 disk_provisioned_throughput_mibps 管道選項。

Go

  • 如要佈建 IOPS,請設定 disk_provisioned_iops 管道選項。
  • 如要以 MiB/s 為單位佈建輸送量,請設定 disk_provisioned_throughput_mibps 管道選項。

如未設定這些選項,使用 hyperdisk-balanced 磁碟的工作會預設為基準效能,即 3,000 IOPS 和 140 MiB/s 處理量。詳情請參閱 Compute Engine 說明文件中的「關於 Hyperdisk Balanced」。

限制

  • Apache Beam SDK 2.74.0 以上版本支援為 Hyperdisk Balanced 佈建 IOPS 和處理量。

磁碟大小

Persistent Disk 大小。

Java

設定 diskSizeGb 管道選項。

Python

設定 disk_size_gb 管道選項。

Go

設定 disk_size_gb 管道選項。

如果設定這個選項,請指定至少 30 GB,以容納 worker 開機映像檔和本機記錄。

縮減磁碟大小會減少可用的重組 I/O。如果 Shuffle 繫結工作未使用 Dataflow Shuffle 或 Streaming Engine,可能會導致執行時間和工作費用增加。

批次工作

對於使用 Dataflow Shuffle 的批次工作,這個選項會設定 worker VM 開機磁碟的大小。對於不使用 Dataflow Shuffle 的批次工作,這個選項會設定用於儲存重組資料的磁碟大小,開機磁碟大小不受影響。

如果批次工作使用 Dataflow Shuffle,預設磁碟大小為 25 GB。否則預設為 250 GB。

串流工作

對於使用 Streaming Engine 的串流工作,這個選項會設定開機磁碟的大小。如果串流工作未使用 Streaming Engine,這個選項會設定 Dataflow 服務建立的每個額外 Persistent Disk 大小,開機磁碟不受影響。

如果串流工作未使用 Streaming Engine,您可以使用實驗旗標 streaming_boot_disk_size_gb 設定開機磁碟大小。例如,指定 --experiments=streaming_boot_disk_size_gb=80 即可建立 80 GB 的開機磁碟。

如果串流工作使用 Streaming Engine,預設磁碟大小為 30 GB。否則預設為 400 GB。

最低 CPU 平台

如果工作負載對效能較為敏感,且仰賴特定 CPU 功能,您可以為 worker VM 指定最低 CPU 平台。這個選項可確保 Dataflow worker 使用的處理器符合或超過指定的 CPU 世代。

如要指定最低 CPU 平台,請設定 min_cpu_platform 實驗管道選項。這個值必須與所選 CPU 平台的名稱完全相同,例如 AMD Milan 或 Intel Ice Lake。例如,指定 --experiments=min_cpu_platform='AMD Milan' 即可將最低 CPU 平台設為 AMD Milan。如要查看支援的最低 CPU 平台清單,請參閱「CPU 平台的可用性」。如要瞭解限制,請參閱「指定最低 CPU 平台時的限制」。

如要確認 Dataflow worker VM 是以指定的最低 CPU 平台建立,請按照下列步驟檢查工作的 Cloud Logging 記錄項目:

  1. 前往 Google Cloud 控制台的 Cloud Logging 控制台。
  2. 請使用下列篩選器,並將範例 CPU 平台和 Dataflow 工作 ID 替換為您的工作資訊。

    resource.type="gce_instance"
    protoPayload.request.minCpuPlatform="AMD Milan"
    "dataflow_job_id"
    
  3. 查看產生的記錄,確認 Dataflow 在 VM 建立程序中成功指定最低 CPU 平台。

使用 Cloud Storage FUSE 將 Cloud Storage bucket 掛接至 Dataflow VM

Cloud Storage FUSE 可讓您直接透過 Dataflow VM 掛接 Cloud Storage bucket,讓軟體能像存取本機檔案一樣存取檔案。這項整合功能可免除預先下載資料的需求,簡化工作負載的資料存取作業。詳情請參閱「使用 Dataflow 和 Cloud Storage FUSE 處理機器學習資料」。

後續步驟