

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

# サービスジョブの容量使用率を追跡する
<a name="track-capacity-utilization-service-jobs"></a>

AWS Batch には、キュー内のサービスジョブの容量使用率を追跡するために一緒に使用できる複数の API オペレーションが用意されています。モニタリングワークフローは、ジョブキューにアタッチされているスケジューリングポリシーのタイプによって異なります。

*先入れ先出し (FIFO) *スケジューリングポリシーを使用するジョブキューの場合:

1. キューの合計使用率 () を確認します`GetJobQueueSnapshot`。

1. ジョブを `SCHEDULED`や `RUNNING` () などのステータスで一覧表示します`ListServiceJobs`。

1. 特定のジョブ () を調べます`DescribeServiceJob`。

*公平配分 (FSS)* または*クォータ管理 (QM) *スケジューリングポリシーを使用するジョブキューの場合:

1. キューの合計使用率 () を確認します`GetJobQueueSnapshot`。

1. 共有あたりの使用率 () を表示します`GetJobQueueSnapshot`。

1. ステータス別にジョブを一覧表示し、 `SCHEDULED` や `RUNNING` () など、使用率に積極的に寄与しているジョブを共有します`ListServiceJobs`。

1. 特定のジョブ () を調べます`DescribeServiceJob`。

以下のセクションでは、各ステップについて詳しく説明します。

ECS、EKS、Fargate コンピューティングジョブの容量使用率の追跡については、「」を参照してください[コンピューティングジョブの容量使用率を追跡する](track-capacity-utilization-compute-jobs.md)。

**Topics**
+ [キューの使用率を確認する](#capacity-utilization-snapshots-service)
+ [共有あたりの使用率を表示する](#share-utilization-monitoring-service)
+ [サービスジョブをステータス別および共有別に一覧表示する](#list-service-jobs-by-share)
+ [特定のサービスジョブを調べる](#examine-service-job)

## キューの使用率を確認する
<a name="capacity-utilization-snapshots-service"></a>

[`GetJobQueueSnapshot`](https://docs.aws.amazon.com/batch/latest/APIReference/API_GetJobQueueSnapshot.html) レスポンスの `queueUtilization`フィールドには、キューからディスパッチされたジョブによって消費されるコンピューティングキャパシティーのpoint-in-timeビューが表示されます。キャパシティは、サービスジョブのインスタンス数で測定されます。

公平配分またはクォータ管理スケジューリングポリシーを使用するジョブキューの場合、レスポンスには共有ごとの内訳も含まれるため、共有間で容量がどのように配分されるかを確認できます。詳細については、「[共有あたりの使用率を表示する](#share-utilization-monitoring-service)」を参照してください。

### キャパシティ使用率の表示 (AWS CLI)
<a name="capacity-snapshots-service-cli"></a>

[get-job-queue-snapshot](https://docs.aws.amazon.com/cli/latest/reference/batch/get-job-queue-snapshot.html) コマンドを使用して、ジョブキューの容量使用率のスナップショットを取得します。

```
aws batch get-job-queue-snapshot \
    --job-queue {{my-job-queue}}
```

レスポンスは、ジョブキューにアタッチされているスケジューリングポリシーによって異なります。スケジューリングポリシータイプのタブを選択すると、レスポンスの例が表示されます。

------
#### [ First-in, first-out (FIFO) ]

FIFO ジョブキューのレスポンスの例を次に示します。FIFO キューはスケジューリングポリシーを使用しないため、レスポンスには共有あたりの使用率は含まれません。

```
{
    "frontOfQueue": {
        "jobs": [],
        "lastUpdatedAt": 1700000000000
    },
    "queueUtilization": {
        "totalCapacityUsage": [
            {
                "capacityUnit": "ml.m5.large",
                "quantity": 9.0
            }
        ],
        "lastUpdatedAt": 1700000000000
    }
}
```

この例では、キューはディスパッチされたすべてのジョブで合計 9 つのインスタンスを消費します。

------
#### [ Fair-share scheduling (FSS) ]

以下は、公平配分ジョブキューのレスポンスの例です。`queueUtilization` オブジェクトには、キューからディスパッチされたすべてのジョブが消費した合計容量のpoint-in-timeスナップショットと、共有ごとの内訳が含まれます。

```
{
    "frontOfQueue": {
        "jobs": [],
        "lastUpdatedAt": 1700000000000
    },
    "queueUtilization": {
        "totalCapacityUsage": [
            {
                "capacityUnit": "NUM_INSTANCES",
                "quantity": 9.0
            }
        ],
        "fairshareUtilization": {
            "activeShareCount": 2,
            "topCapacityUtilization": [
                {
                    "shareIdentifier": "team-a",
                    "capacityUsage": [
                        {
                            "capacityUnit": "NUM_INSTANCES",
                            "quantity": 5.0
                        }
                    ]
                },
                {
                    "shareIdentifier": "team-b",
                    "capacityUsage": [
                        {
                            "capacityUnit": "NUM_INSTANCES",
                            "quantity": 4.0
                        }
                    ]
                }
            ]
        },
        "lastUpdatedAt": 1700000000000
    }
}
```

この例では、 `totalCapacityUsage`フィールドはキューが合計 9 個のインスタンスを消費することを示しています。`fairshareUtilization` オブジェクトには、共有ごとの内訳が表示されます。共有は 5 つのインスタンスを`team-a`消費し、共有は 4 つのインスタンスを`team-b`消費します。

------
#### [ Quota management (QM) ]

以下は、クォータ管理ジョブキューのレスポンスの例です。`queueUtilization` オブジェクトには、キューからディスパッチされたすべてのジョブが消費した合計容量のpoint-in-timeスナップショットと、per-quota-share内訳が含まれます。`frontOfQuotaShares` オブジェクトには、クォータ共有あたりの最初の`RUNNABLE`ジョブが表示されます。

```
{
    "frontOfQueue": {
        "jobs": [],
        "lastUpdatedAt": 1700000000000
    },
    "frontOfQuotaShares": {
        "quotaShares": {
            "team-a-share": [],
            "team-b-share": []
        },
        "lastUpdatedAt": 1700000000000
    },
    "queueUtilization": {
        "totalCapacityUsage": [
            {
                "capacityUnit": "ml.m5.large",
                "quantity": 9.0
            }
        ],
        "quotaShareUtilization": {
            "topCapacityUtilization": [
                {
                    "quotaShareName": "team-a-share",
                    "capacityUsage": [
                        {
                            "capacityUnit": "ml.m5.large",
                            "quantity": 5.0
                        }
                    ]
                },
                {
                    "quotaShareName": "team-b-share",
                    "capacityUsage": [
                        {
                            "capacityUnit": "ml.m5.large",
                            "quantity": 4.0
                        }
                    ]
                }
            ]
        },
        "lastUpdatedAt": 1700000000000
    }
}
```

この例では、 `totalCapacityUsage`フィールドはキューが合計 9 個のインスタンスを消費することを示しています。`quotaShareUtilization` オブジェクトには、per-quota-share内訳が表示されます。クォータ共有は 5 つのインスタンスを`team-a-share`消費し、クォータ共有は 4 つのインスタンスを`team-b-share`消費します。`frontOfQuotaShares` オブジェクトには、各クォータ共有の最初の`RUNNABLE`ジョブと、ジョブがその位置に達した最も早い時刻が表示されます。

------

## 共有あたりの使用率を表示する
<a name="share-utilization-monitoring-service"></a>

公平配分またはクォータ管理スケジューリングポリシーを持つジョブキューの場合、 からの`queueUtilization`レスポンスには、消費別に上位のアクティブな共有を一覧表示する`topCapacityUtilization`配列を持つ使用率オブジェクト`GetJobQueueSnapshot`が含まれます。

この情報は、以下に役立ちます。
+ リソースを最も多く消費する共有を特定します。
+ リソースが想定どおりに共有に分散されていることを確認します。
+ 割り当てを飽和または十分に活用していない可能性のある共有を検出します。
+ スケジューリングポリシーの設定を調整するかどうかを決定します。

公平配分スケジューリングポリシーの詳細については、「」を参照してください[公平配分スケジューリングポリシー](job_scheduling.md)。

クォータ共有の詳細については、「」を参照してください[クォータ共有](quota-shares.md)。

## サービスジョブをステータス別および共有別に一覧表示する
<a name="list-service-jobs-by-share"></a>

キュー全体と共有ごとの使用率を特定したら、 [`ListServiceJobs`](https://docs.aws.amazon.com/batch/latest/APIReference/API_ListServiceJobs.html) API オペレーションを使用して、使用率に積極的に寄与しているサービスジョブを見つけます。ジョブステータスでフィルタリングして`RUNNING`、、`SCHEDULED`、または別の状態のジョブを表示できます。公平配分またはクォータ管理スケジューリングポリシーを持つキューの場合、共有識別子でフィルタリングして結果を特定の共有に絞り込むこともできます。

**注記**  
`SHARE_IDENTIFIER` および `QUOTA_SHARE_NAME`フィルターは、 `jobStatus`パラメータと組み合わせることができる唯一のフィルターです。他のフィルターを使用すると、 `jobStatus`パラメータは無視されます。

### サービスジョブを一覧表示する (AWS CLI)
<a name="list-service-jobs-by-share-cli"></a>

list[list-service-jobs](https://docs.aws.amazon.com/cli/latest/reference/batch/list-service-jobs.html) コマンドと `--job-status`パラメータを使用して、ステータスでフィルタリングします。

キューで実行中のサービスジョブを表示します。

```
aws batch list-service-jobs \
    --job-queue {{my-job-queue}} \
    --job-status RUNNING
```

公平配分スケジューリングポリシーを持つキューの場合、 `--filters`パラメータを とともに使用`SHARE_IDENTIFIER`して、特定の共有のジョブを一覧表示します。クォータ管理スケジューリングポリシーを持つキューの場合、 を使用して特定のクォータ共有のジョブを一覧表示`QUOTA_SHARE_NAME`します。これは、キャパシティ消費量が多い共有を特定し、どのジョブが責任を負うかを確認する場合に便利です。

公平配分キューから共有`RUNNING`のサービスジョブのみを一覧表示します。

```
aws batch list-service-jobs \
    --job-queue {{my-job-queue}} \
    --job-status RUNNING \
    --filters name=SHARE_IDENTIFIER,values="{{team-a}}"
```

クォータ管理スケジューリングポリシーを持つキューの場合は、 `QUOTA_SHARE_NAME`フィルターを使用します。

```
aws batch list-service-jobs \
    --job-queue {{my-job-queue}} \
    --job-status RUNNING \
    --filters name=QUOTA_SHARE_NAME,values="{{my-quota-share}}"
```

以下は、公平配分キューの共有識別子でフィルタリングされた実行中のサービスジョブを一覧表示するためのレスポンスの例です。

```
{
    "jobSummaryList": [
        {
            "jobArn": "arn:aws:batch:us-east-1:123456789012:service-job/a4d6c728-8ee8-4c65-8e2a-9a5e8f4b7c3d",
            "jobId": "a4d6c728-8ee8-4c65-8e2a-9a5e8f4b7c3d",
            "jobName": "my-training-job",
            "serviceJobType": "SAGEMAKER_TRAINING",
            "status": "RUNNING",
            "shareIdentifier": "team-a",
            "createdAt": 1700000000000,
            "scheduledAt": 1700000060000,
            "startedAt": 1700000120000,
            "capacityUsage": [
                {
                    "capacityUnit": "ml.m5.large",
                    "quantity": 5.0
                }
            ],
            "latestAttempt": {
                "serviceResourceId": {
                    "name": "TrainingJobArn",
                    "value": "arn:aws:sagemaker:us-east-1:123456789012:training-job/my-training-job"
                }
            }
        }
    ]
}
```

この例では、レスポンスには、ジョブが`team-a`共有に属していることを示す `shareIdentifier`フィールドと、ジョブが 5 つの`ml.m5.large`インスタンスを消費していることを示す`capacityUsage`配列が含まれます。`latestAttempt` オブジェクトには、ターゲットサービスから追加の詳細を取得するために使用できるサービスリソース識別子が含まれています。

## 特定のサービスジョブを調べる
<a name="examine-service-job"></a>

目的のサービスジョブを特定したら、 [`DescribeServiceJob`](https://docs.aws.amazon.com/batch/latest/APIReference/API_DescribeServiceJob.html)オペレーションを使用して、現在のステータス、サービスリソース識別子、詳細な試行情報など、ジョブに関する包括的な情報を取得します。

特定のサービスジョブに関する詳細情報を表示します。

```
aws batch describe-service-job \
    --job-id {{a4d6c728-8ee8-4c65-8e2a-9a5e8f4b7c3d}}
```

このコマンドは、次のようなジョブに関する包括的な情報を返します。
+ ジョブ ARN と現在のステータス
+ サービスリソース識別子 (SageMaker トレーニングジョブ ARN など)
+ 優先度と再試行設定のスケジューリング
+ 元のサービスパラメータを含むサービスリクエストペイロード
+ 開始時刻と停止時刻を含む詳細な試行情報
+ ターゲットサービスからのステータスメッセージ

### 基盤となる SageMaker トレーニングジョブを調べる
<a name="track-sagemaker-training-jobs"></a>

を使用して SageMaker トレーニングジョブをモニタリングする場合 AWS Batch、 AWS Batch ジョブ情報と基盤となる SageMaker トレーニングジョブの詳細の両方にアクセスできます。

ジョブ詳細のサービスリソース識別子には、SageMaker トレーニングジョブ ARN が含まれます。

```
{
    "latestAttempt": {
        "serviceResourceId": {
            "name": "TrainingJobArn",
            "value": "arn:aws:sagemaker:us-east-1:123456789012:training-job/my-training-job"
        }
    }
}
```

この ARN を使用して、SageMaker から直接追加の詳細を取得できます。

```
aws sagemaker describe-training-job \
    --training-job-name {{my-training-job}}
```

 AWS Batch ステータスと SageMaker Training ジョブのステータスの両方を確認して、ジョブの進行状況をモニタリングします。 AWS Batch ジョブのステータスはジョブのライフサイクル全体を示し、SageMaker トレーニングジョブのステータスはトレーニングプロセスに関するサービス固有の詳細を提供します。