ジョブのリソース取得可能性を改善する

このドキュメントでは、リソースの取得可能性について説明し、バッチジョブを作成して実行する際に取得可能性を向上させる方法について説明します。

取得可能性とは

取得可能性とは、ワークロードを実行するためにリソースが使用可能になる確率です。 リソースが使用できない場合、リソース の可用性 エラーによりワークロードが失敗します。 取得可能性は、ワークロードがユーザーに利用可能になる確率である信頼性に関連しますが、信頼性とは異なります。(可用性とは、どちらか一方 または両方を意味します)。

取得可能性と信頼性の関係は複雑です。ワークロードを信頼できるようにするには、リソースを取得する必要があります。ただし、ロケーション、時間、ハードウェアの柔軟性が高まると取得可能性は向上しますが、信頼性はワークロードの要件を満たす柔軟性でのみ向上します。たとえば、次のような複雑さがあります。

  • 高性能のマシンタイプは需要が高いため、取得可能性が低い可能性がありますが、ワークロードのパフォーマンスが十分でない場合は信頼性が低下します。
  • ロケーションの柔軟性が高まると取得可能性が向上しますが、マシンを密集して割り当てるとネットワーク パフォーマンスが向上します。
  • 時間の柔軟性が高まると取得可能性が向上しますが、過剰な待機によって不要な遅延が発生する可能性があります。

したがって、取得可能性が高いほど良いとは限りません。最適な取得可能性のレベルは、優先度と要件によって異なります。たとえば、費用を削減することを優先するために、取得可能性を低くしたい場合があります。信頼性を優先する場合でも、取得可能性を高めるメリットと、パフォーマンスの低下や遅延の増加のリスクとのバランスを取る必要があるかもしれません。

ジョブの取得可能性を向上させるための推奨事項

バッチジョブの取得可能性を向上させるには、次のセクションをご覧ください。

すべての使用オプションに関する推奨事項

  • ワークロードを分離して、大規模で高性能なマシンタイプのニーズを最小限に抑えます。 たとえば、依存ジョブを使用して、コンピューティング負荷の高いオペレーションと需要の少ないオペレーションを分離します。次に、並列処理を最大化し、緊密に結合されたタスクを最小限に抑えることで、各ジョブに必要な最小限のコンピューティング リソースを可能な限り削減します。

    依存ジョブコンピューティング リソース、並列処理の詳細をご確認ください。

  • ジョブの Compute Engine リソースに許可されるロケーションの数を最大化します。これはデフォルトで true です。ジョブの allowedLocations[] フィールドを指定しない限り、ジョブの Compute Engine リソースはジョブのロケーション内のすべてのゾーンで実行できます。

    ロケーションの詳細をご確認ください。

  • 取得可能性が向上するのを待つ前に、フェイルファスト戦略の使用を検討してください。 遅延を回避するには、次のようなフェイルファスト戦略を検討してください。

    • リソースの可用性エラーは、別の時間にリクエストを試すことでトラブルシューティングできますが、多くの場合、別のロケーションまたはハードウェアを試す方が迅速です。
    • 複数の使用オプションを使用できる場合は、遅延のない使用オプション(オンデマンド予約、オンデマンド、Spot VM)を最初に試す方が迅速な場合があります。
    • 繰り返す予定の新しいワークロードの場合は、取得が高速なオプションを一時的に使用して、初期テストとトラブルシューティングを迅速に行うことをおすすめします。

使用オプションに基づく推奨事項

選択した使用オプションは、ジョブの取得可能性の主な要因です。このセクションでは、各使用オプションの概要と、各使用オプションの取得可能性を最適化する方法について簡単に説明します。

次の使用オプションは、取得可能性の高い順に並んでいます。

  • 取得可能性の要件が高いワークロードの場合は、予約を使用します。 予約を使用すると、他のすべての使用オプションよりも高いレベルで容量を確保できます。予約済み容量を使用するには、まず使用できる既存の予約を作成または特定します。次に、その予約済み容量を使用するようにインスタンスを構成します。他の使用オプションとは異なり、予約済みインスタンスは容量保証のため、削除するまで使用していなくても費用が発生します。取得可能性を考慮する場合は、次のタイプの予約から選択します。

    • 予約済み容量が必要な場合は、特定の予約を使用します。 これらの予約を使用すると、予約済み容量がワークロードで使用可能かどうかを簡単に確認できます。予約済み容量が使用可能で互換性がない場合、ワークロードは失敗してエラーを返します。特定の予約には、RESERVATION_BOUND プロビジョニング モデルのすべての予約と、STANDARD プロビジョニング モデルの一部の予約が含まれます。

      予約を使用するジョブを作成する方法を学習する。

    • 予約済み容量がオプションの場合は、自動的に使用される 予約を使用し、インスタンスの柔軟性 (プレビュー)を使用します。 これらの予約オプションは、ワークロードで使用できる予約済み容量が使用可能な場合にのみ、高いレベルで容量を確保できます。自動的に使用される予約の場合は、STANDARD プロビジョニング モデルを指定し、予約済み容量が使用可能で、ワークロードのインスタンス構成と一致していることを手動で確認する必要があります。予約済み容量が使用できない場合や一致しない場合、ワークロードは代わりにオンデマンド容量を使用しようとします。ただし、特定の予約とは異なり、自動的に使用される予約でインスタンスの柔軟性を使用すると、ワークロードで複数の自動的に使用される予約を使用できます。

      予約インスタンスの柔軟性プレビュー)を使用するジョブを作成する方法を学習する。

  • 取得可能性の要件が中程度のワークロードの場合は、インスタンスの柔軟性 (プレビュー)または Flex Start VM を使用してオンデマンド 容量を使用します。これらのオプションは次のように選択します。

    • マシンタイプが A3 マシンシリーズまたはサポートされていない場合を除き、 インスタンスの柔軟性 (プレビュー)でオンデマンド容量を使用することを検討してください。 オンデマンド使用オプションには、STANDARD(デフォルト)プロビジョニング モデルが必要です。予約の使用を明示的にブロックしない限り、ワークロードはデフォルトで自動的に使用される予約を使用しようとします。なお、 A3 マシンシリーズではオンデマンドはおすすめしません

      標準プロビジョニング モデルインスタンス の柔軟性プレビュー)を使用するジョブを作成する方法を学習する。

    • それ以外の場合や、オンデマンド容量が繰り返し使用できない場合は、Flex Start VM の使用を検討してください。 Flex Start VM 使用オプションを使用するには、FLEX_START プロビジョニング モデルを指定します。Flex Start VM では、ワークロードが待機時間と実行時間の制限に耐える必要がありますが、Dynamic Workload Scheduler の料金に基づいて割引も提供されます。

      Flex Start VM を使用するジョブを作成する方法を学習する。

  • 取得可能性の要件が低いワークロードの場合は、複数の取得可能性機能を持つ Spot VM を使用します。 Spot VM 使用オプションを使用するには、SPOT プロビジョニング モデルを指定します。Spot VM は常に使用できるとは限らず、いつでもプリエンプトされる可能性があるため、フォールト トレラントなワークロードにのみおすすめしますが、Spot VM の料金で最大の割引が適用される可能性があります。

    通常、作成前に Spot VM の可用性を確認し、ワークロードがプリエンプションを処理できることを確認することをおすすめします。次に、バッチジョブで Spot VM の取得可能性を向上させるには、 同じランクの複数のマシンタイプでインスタンスの柔軟性(プレビュー) を使用し、自動再試行を使用してプリエンプション後に Spot VM を自動的に再作成することをおすすめします。

    Compute Engine ドキュメントで、Spot VM の可用性を 確認し 、Spot VM のプリエンプションを管理する方法 を学習する。次に、Spot VM プロビジョニング モデル、インスタンスの柔軟性(プレビュー)、プリエンプションの自動再試行を使用するジョブを作成する方法を学習する。

次のステップ

  • 別のジョブ作成オプションについて学習する