タスクとフリートの一致

バッチ・サービスが、タスク・プロファイルと割当ポリシーを使用してタスクと最も適切なフリートを自動的に照合し、ハードウェアの選択とジョブのスケジューリングを合理化する方法を学習します。

バッチ・サービスでジョブを実行する場合、タスクを効率的に実行するには適切なハードウェアが必要です。フリートは、バッチ・コンテキストで設定するコンピュート・リソースのプールです。フリートは、特定のCPU、メモリーおよびディスク構成を持つマシンのグループです。すべてのタスクを特定のマシンまたはフリートに一致させる必要はありません。かわりに、バッチ・サービスはタスク・プロファイルと割当ポリシーを使用して、各タスクに最適なものを見つけます。

タスクプロファイルを使用したハードウェア要件の定義

すべてのタスクのハードウェア詳細を指定するかわりに、バッチでタスク・プロファイルを使用できます。タスク・プロファイルは、OCPU、メモリー、ディスク領域など、タスクの最小ハードウェア要件を定義する再利用可能なオブジェクトです。たとえば、4 OCPUと16 GB RAMのタスク・プロファイルを作成し、さらに重いワークロード用にタスク・プロファイルを作成できます。

タスクを発行する場合は、タスク・プロファイルを割り当てます。これにより、特定のフリートを指定せずに、割り当てるハードウェアの種類がバッチに通知されます。

割当ポリシーのあるフリートへのタスクの割り当て

バッチは割当ポリシーに依存して、タスクをフリートに割り当てます。割当ポリシーは、バッチが各タスクの使用可能なフリートから選択する方法を決定するルールです。

割当ポリシーは、次の2つの方法で機能します。

  • ベスト・フィット・ポリシー:バッチは、タスクの要件を満たす使用可能な最小のフリートを選択します。そのフリートで使用可能なリソースがない場合、タスクはスロットが使用可能になるまで待機します。タスクは大規模なフリートに移動されません。
  • フレックス・フィット・ポリシー:柔軟性を高める場合、フレックス・フィットにより、最小のフリートがいっぱいになると、バッチでより大きなフリートにタスクを割り当てることができます。しきい値を設定して、代替フリートの大きさを制御できます。制限を設定しない場合、バッチは使用可能なフリートを使用してタスクを迅速に実行します。

ポリシーを指定しない場合、Batchはデフォルトで制限のないフレックス・フィットを使用します。

フリートの選択

バッチは、CPU、メモリー、ディスクなどのハードウェア・プロファイルに基づいてフリートをソートします。この順序により、Best-fitとFlex-fitは常に、より大きなフリートに移動する前に、より小さく、よりコスト効率の高いフリートに優先順位を付けます。

たとえば、次の構成を持つフリートが3つあるとします。
  • 小型フリート: 4 OCPU、マシンあたり8 GB RAM
  • 中フリート: 10 OCPU、32 GB RAM
  • 大型フリート: 30 OCPU、128 GB RAM
各タスクに4 OCPUおよび8 GB RAMが必要なバッチ・ジョブを発行する場合:
  • ベスト・フィット:スペースが使用可能な場合、各タスクは小さなフリートに割り当てられます。
  • フレックス・フィット:小規模なフリートがいっぱいの場合、タスクは必要に応じて中規模または大規模フリートに割り当てられます(設定したしきい値内)。

このスケジューリングは自動的に行われるため、各タスクの実行場所を管理する必要はありません。

バッチは、選択したプロファイルおよびポリシーに基づいて、タスクと最適なフリートを自動的に照合します。詳細は、「バッチ・コンテキストの作成」のトピックのフリートに関する項を参照してください。

ディスク要件およびフリートの適格性

APIリクエストでは、diskSizeInGBsは、各フリート・ノードのブート・ボリュームのサイズ(GB)を指定するフリート構成プロパティです。

フリートの作成時にdiskSizeInGBsを省略するか、nullに設定すると、選択したイメージおよび適用可能な最小要件からブート・ボリューム・サイズが導出されます。派生サイズは、イメージおよび要件の変更に応じて変更できます。特定のノードのブート・ボリューム・サイズを保証するには、diskSizeInGBsを明示的に設定します。

CPUフリートには、ブート・ボリューム・サイズが75GiB以上必要です。GPUフリートには、ブート・ボリューム・サイズが100GiB以上必要です。適用可能な最小値を下回るサイズを指定した場合、フリート・プロビジョニングは失敗します。

タスク・プロファイルのminDiskSizeInGBsがフリートの解決済diskSizeInGBsを超えていない場合のみ、タスクはフリートに適格です。この比較では、フリート・ノードのブートボリューム・サイズが使用されます。

たとえば、自動サイズ設定されたCPUフリートは、現在75GiBに解決されます。75 GiBを必要とするタスクをそのフリートにスケジュールできます。200 GiBを必要とするタスクは、そのフリートでスケジュールできません。75GiB値は現在の解決値であり、永続的なCPUのデフォルトではありません。

minDiskSizeInGBsはスケジューリング要件です。タスク・コンテナ・ファイル・システムで同じ容量を使用できることは保証されません。タスク要件の設定方法については、「タスクプロファイルの作成」を参照してください。

適格なフリートがない場合

バッチ・コンテキスト内のフリートがタスク・プロファイルのリソース要件を満たしていない場合、バッチはタスクをスケジュールできません。

たとえば、タスク・プロファイルに200 GiBが必要で、適格な最大フリートのブートボリューム・サイズが75 GiBの場合、そのタスク・プロファイルのディスク要件を満たすフリートはありません。タスク・プロファイル要件およびフリート構成をレビューしてから、タスク要件を減らすか、十分な容量のフリートを構成します。