VM の自動選択

workerMachineType パイプライン オプションを使用してジョブを特定のマシンタイプに固定すると、リソースの在庫切れにより遅延やジョブの失敗が発生するリスクがあります。自動 VM 選択は、Compute Engine のインスタンスの柔軟性を使用して、互換性のある使用可能なマシンタイプのプールからワーカーを自動的に選択することで、この問題に対処します。これにより、Dataflow パイプラインが容量を確実に取得し、一貫したパフォーマンスを維持して中断を回避できます。

サポートされていない構成

パイプラインが次のいずれかで構成されている場合、VM の自動選択はオフになります。

  • Dataflow Prime が有効になっている。
  • min_cpu_platform パイプライン オプションが設定されている。
  • Hyperdisk Balanced ディスクまたはカスタム プロビジョニングされたパフォーマンス(IOPS とスループット)が使用されている。これらの構成で開始されたジョブは失敗します。
  • Confidential VMs が有効になっている。
  • アクセラレータ(GPU または TPU)が必要です。

また、Shuffle Appliance または Streaming Appliance を使用するジョブでは、VM の自動選択はサポートされていません。

VM の自動選択を有効にする

VM の自動選択は、次のいずれかのシナリオで自動的に有効になります。

  • アクセラレータ(GPU または TPU)を必要としないパイプライン ステップに min_ram または cpu_count リソース ヒントを設定した場合。テンプレート ベースのジョブでリソースヒントを使用する方法については、パイプライン リソースヒントをご覧ください。

Auto VM Selection の動作

min_ram リソースヒントと cpu_count リソースヒントを、単独または組み合わせて構成します。次に例を示します。

  1. cpu_count=2 のみのジョブでは、n4-standard-2(2 個の vCPU、8 GB の RAM)、c4-standard-2(2 個の vCPU、7 GB の RAM)などのマシンタイプでインスタンスをプロビジョニングできます。
  2. cpu_count=4 と min_ram=16GB の両方を含むジョブは、n4-standard-4(4 個の vCPU、16 GB の RAM)、c4-highmem-4(4 個の vCPU、31 GB の RAM)などのマシンタイプでインスタンスをプロビジョニングできます。

VM の自動選択は、リソースの入手可能性を考慮して VM の選択を最適化します。つまり、自動 VM 選択を使用して高度にチューニングされたジョブの取得可能性を向上させると、パフォーマンスが低下する可能性があります。既存のジョブのサブセットで VM の自動選択をテストしてから、徐々にデプロイ範囲を拡大することをおすすめします。取得可能性の詳細については、Batch ドキュメントのジョブのリソース取得可能性を改善するをご覧ください。

Dataflow は、効率を向上させるために、まず第 4 世代のマシン ファミリー(N4 や C4 など)を使用しようとします。リージョンで第 4 世代のマシンが利用できない場合、割り当てが不足している場合、または構成と互換性がない場合、Dataflow は自動的に広く利用可能な第 2 世代のマシン ファミリー(N2 や E2 など)にフォールバックし、容量の遅延なしにジョブを開始できるようにします。

リソースヒント(右適合)を使用して VM の自動選択を有効にするときに、pd-ssd や pd-standard などのディスクタイプを指定すると、Dataflow は互換性のある第 2 世代のマシン ファミリーのみをプロビジョニングします。互換性を最大限に高め、新しい世代のマシンを使用できるようにするには、ディスクタイプを割り当てないでください。

Compute Engine の予約

自動 VM 選択で Compute Engine の予約を使用する場合は、次の点に注意してください。

  • 自動的に使用されるように構成された予約がある場合、Auto VM Selection が予約に一致するマシンタイプをプロビジョニングすると、その予約が使用される可能性があります。
  • VM の自動選択では、コンピューティング インスタンスが利用可能になると、それらが使用されます。そのため、サービスが特定の予約からインスタンスを使用するように指定することはできません。

既知の問題

VM の自動選択を使用する場合は、次の既知の問題に注意してください。

予期しない並列処理

右フィットで自動 VM 選択を使用しているときに、ワーカー VM で CPU 使用率が低いか、予期しない並列処理が発生している場合は、選択したマシンタイプの vCPU 数と一致するようにワーカーあたりのスレッド数が自動的に設定されない既知の問題が原因である可能性があります。

この問題を回避するには、numberOfWorkerHarnessThreads パイプライン オプションを使用して、ワーカー ハーネス スレッドの数を明示的に設定します。このオプションは、パイプライン内のすべてのワーカープールにグローバルに適用されます。