

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# 公平配分スケジューリングポリシー
<a name="job_scheduling"></a>

ス AWS Batch ケジューラは、ジョブキューに送信されたジョブをいつ、どこで、どのように実行するかを評価します。ジョブキューの作成時にスケジューリングポリシーを指定しない場合、 AWS Batch ジョブスケジューラはデフォルトで先入れ先出し (FIFO) 戦略になります。FIFO 戦略では、重要なジョブが以前に送信されたジョブの後ろでスタックする可能性があります。別のスケジューリングポリシーを指定することで、特定のニーズに応じてコンピューティングリソースを割り当てることができます。

**注記**  
ジョブの実行順序を保証する必要がある場合は、[SubmitJob](https://docs.aws.amazon.com/batch/latest/APIReference/API_SubmitJob.html) の `[dependsOn](https://docs.aws.amazon.com/batch/latest/APIReference/API_SubmitJob.html#Batch-SubmitJob-request-dependsOn)` パラメータを使用し、各ジョブの依存関係を指定します。

スケジューリングポリシーを作成してジョブキューに適用すると、公平分配スケジューリングが有効になります。ジョブキューにスケジューリングポリシーがある場合、スケジューリングポリシーによってジョブの実行順序が決まります。詳細については、「[公平配分スケジューリングポリシーを使用して配分識別子を割り当てる](scheduling-policies.md)」を参照してください。

**Topics**
+ [配分識別子を使用してワークロードを識別する](share-identifiers.md)
+ [公平配分スケジューリングポリシーを使用して配分識別子を割り当てる](scheduling-policies.md)
+ [公平配分スケジューリングを使用してジョブをスケジュールする](fair-share-scheduling.md)
+ [チュートリアル: 公平配分スケジューリングポリシーを作成する](create-scheduling-policy.md)
+ [リファレンス: 公平配分スケジューリングポリシーテンプレート](scheduling-policy-template.md)

# 配分識別子を使用してワークロードを識別する
<a name="share-identifiers"></a>

配分識別子を使用してジョブにタグを付け、ユーザーとワークロードを区別できます。 AWS Batch スケジューラは`(T * weightFactor)`、式を使用して各共有識別子の使用状況を追跡します。ここで、 *`T`*は時間の経過に伴う vCPU の使用状況です。スケジューラは、配分識別子から使用率が最も低いジョブを選択します。配分識別子は、オーバーライドせずに使用できます。

**注記**  
配分識別子はジョブキュー内で一意であり、ジョブキュー全体で集計されることはありません。

公平配分のスケジューリングの優先順位を設定して、配分識別子でのジョブの実行順序を設定できます。スケジューリング優先度の高いジョブが最初にスケジュールされます。公平配分のスケジューリングポリシーを指定しない場合、ジョブキューに送信されるすべてのジョブは FIFO 順にスケジュールされます。ジョブの送信時には、配分識別子や公平配分スケジューリング優先度を指定することはできません。

**注記**  
アタッチされたコンピューティングリソースは、明示的にオーバーライドされない限り、すべての配分識別子に均等に割り当てられます。

# 公平配分スケジューリングポリシーを使用して配分識別子を割り当てる
<a name="scheduling-policies"></a>

公平配分スケジューリングポリシーを使用して、ジョブキュー内のコンピューティングリソースをユーザーまたはワークロード間で割り当てる方法を設定できます。公平配分スケジューリングポリシーを使用すると、ワークロードまたはユーザーに異なる共有識別子を割り当てることができます。 は、各共有識別子に、一定期間に使用可能な合計リソースの割合を AWS Batch 割り当てます。

公平配分比率は、`shareDecaySeconds` および `shareDistribution` の値を使用して計算されます。ポリシーに減衰時間を割り当てることで、公平配分分析にかける時間を増やすことができます。減衰時間が長いほど、時間により多くの重みが与えられ、定義された重みよりも少なくなります。コンピューティング予約を指定することで、アクティブでない配分識別子に対してコンピューティングリソースを確保できます。詳細については、「[SchedulingPolicyDetail](https://docs.aws.amazon.com/batch/latest/APIReference/API_SchedulingPolicyDetail.html)」を参照してください。

# 公平配分スケジューリングを使用してジョブをスケジュールする
<a name="fair-share-scheduling"></a>

公平配分スケジューリングは、ジョブのスケジュール設定に役立つ一連の制御を提供します。スケジューリングポリシーのパラメータの詳細については、「[SchedulingPolicyDetail](https://docs.aws.amazon.com/batch/latest/APIReference/API_SchedulingPolicyDetail.html)」を参照してください。
+ **共有減衰秒 –** ス AWS Batch ケジューラが各共有識別子の公平配分の割合を計算するために使用する期間 (秒単位）。値がゼロ (0) の場合、現在の使用量のみが測定されることを示します。減衰時間が長いほど、時間にさらに多くの重みが与えられます。
**注記**  
減衰時間は次のように計算されます。*`shareDecaySeconds + OrderMinutes`*ここで、*`OrderMinutes `* は分単位の時間です。
+ **コンピューティング予約** — 1 つの配分識別子に含まれるジョブが、ジョブキューにアタッチされているすべてのリソースを使い切ることを防ぎます。予約比率は `(computeReservation/100)^ActiveFairShares` であり、`ActiveFairShares` は、アクティブな配分識別子の数です。
**注記**  
配分識別子に `SUBMITTED`、`PENDING`、`RUNNABLE`、`STARTING`、または `RUNNING` の状態のジョブがある場合、そのジョブはアクティブな配分識別子と見なされます。減衰時間が切れると、配分識別子は非アクティブと見なされます。
+ **重み係数 –** 配分識別子の重み係数。デフォルト値は 1 です。値を小さくすると、配分識別子からジョブが実行されるか、配分識別子のランタイムが長くなります。例えば、重み係数 0.125 (1/8) の配分識別子を使用するジョブには、重み係数 1 の配分識別子を使用するジョブの 8 倍のコンピューティングリソースが割り当てられます。
**注記**  
この属性は、デフォルトの重み係数である 1 を更新する必要がある場合のみ設定します。

ジョブキューがアクティブでジョブを処理しているときに、ジョブキュースナップショットを使用して最初の 100 個の `RUNNABLE` ジョブリストを確認できます。詳細については、「[でジョブキューを表示する AWS Batch](job_queue_viewing_status.md)」を参照してください。

# チュートリアル: 公平配分スケジューリングポリシーを作成する
<a name="create-scheduling-policy"></a>

スケジューリングポリシーを使用してジョブキューを作成する前に、スケジューリングポリシーを作成する必要があります。公平配分スケジューリングポリシーを作成するときは、キューの重みに 1 つ以上の配分識別子または配分識別子のプレフィックスを関連付けて、オプションで減衰期間とコンピューティング予約をポリシーに割り当てます。

**公平配分スケジューリングポリシーを作成するには**

1. [https://console.aws.amazon.com/batch/](https://console.aws.amazon.com/batch/) で AWS Batch コンソールを開きます。

1. ナビゲーションバーから、使用するリージョンを選択します。

1. ナビゲーションペインで、**[Scheduling policies]** (ポリシー)、**[Create]** (ポリシーの作成) の順に選択します。

1. **[Name]** (名前) に、スケジューリングポリシーの一意の名前を入力します。最大 128 文字の英字 (大文字と小文字)、数字、ハイフン、アンダースコアを使用できます。

1. (オプション) **[割合の減衰秒]** に、公平配分スケジューリングポリシーの共有減衰時間の整数値を入力します。共有減衰時間が長いほど、ジョブをスケジュールするときに長時間にわたってコンピューティングリソースの使用量がかなり大きくなります。これにより、配分識別子を使用するジョブは、その配分識別子が最近コンピューティングリソースを使用していなかった場合に、その配分識別子の重みよりも多くのコンピューティングリソースを一時的に使用できるようになります。

1. (オプション) **[コンピューティング予約]** に、公平配分スケジューリングポリシーのコンピューティング予約を示す整数値を入力します。コンピューティング予約は、現在アクティブでない配分識別子に使用するために、一部の vCPUs を予備に保持します。

   予約比率は `(computeReservation/100)^ActiveFairShares` であり、*ActiveFairShare* は、アクティブな配分識別子の数です。

   たとえば、`computeReservation`値が 50 の場合、 は最大使用可能な VCPU の 50% を予約 AWS Batch する必要があるのは、共有識別子が 1 つしかない場合は 50%、共有識別子が 2 つある場合は 25%、共有識別子が 3 つある場合は 12.5% です。ある `computeReservation` の値が 25 の場合、 AWS Batch は、配分識別子が 1 つしかない場合は、使用可能な最大の VCPU の 25%、配分識別子が 2 つある場合は 6.25%、配分識別子が 3 つある場合は 1.56% を予約します。

1. **[属性の共有]** セクションでは、公平配分スケジューリングポリシーに関連付ける各配分識別子の配分識別子と重みを指定できます。

   1. **[Add share identifier]** (配分識別子を追加) を選択します。

   1. **[配分識別子]** に配分識別子を指定します。文字列が「\$1\$1」で終わる場合、これはジョブの配分識別子の照合に使用される配分識別子のプレフィックスになります。スケジューリングポリシー内のすべての配分識別子と配分識別子のプレフィックスは一意でなければならず、重複することはできません。例えば、同じ公平配分スケジューリングポリシーに配分識別子のプレフィックス「UserA\$1\$1」と配分識別子「UserA1」を含めることはできません。

   1. **[重み係数]** には、配分識別子の相対的な重みを指定します。デフォルト値は 1.0 です。値が小さいほど、コンピューティングリソースの優先順位が高くなります。配分識別子のプレフィックスが使用されている場合、プレフィックスで始まる配分識別子を持つジョブは重み係数を共有します。これにより、これらのジョブの重み係数が効果的に増加し、個々の優先度は下がりますが、配分識別子のプレフィックスには同じ重み係数が維持されます。

1. (オプション) **タグ**セクションで、スケジューリングポリシーに関連付ける各タグのキーと値を指定します。詳細については、「[AWS Batch リソースのタグ付け](using-tags.md)」を参照してください。

1. **[Submit]** (送信) を選択して終了し、スケジューリングポリシーを作成します。

# リファレンス: 公平配分スケジューリングポリシーテンプレート
<a name="scheduling-policy-template"></a>

空の公平配分スケジューリングポリシーテンプレートを以下に示します。このテンプレートを使用してスケジューリングポリシーを作成し、それをファイルに保存して オプションとともに AWS CLI `--cli-input-json`使用できます。これらのパラメータの詳細については、「[CreateComputeEnvironment](https://docs.aws.amazon.com/batch/latest/APIReference/API_CreateSchedulingPolicy.html)」 (*AWS Batch API リファレンス*内) を参照してください。

**注記**  
ジョブキューテンプレートは、次の AWS CLI コマンドを使用して生成できます。  

```
$ aws batch create-scheduling-policy --generate-cli-skeleton
```

```
{
    "name": "",
    "fairsharePolicy": {
        "shareDecaySeconds": 0,
        "computeReservation": 0,
        "shareDistribution": [
            {
                "shareIdentifier": "",
                "weightFactor": 0.0
            }
        ]
    },
    "tags": {
        "KeyName": ""
    }
}
```