View a markdown version of this page

追蹤運算任務容量使用率 - AWS Batch

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

追蹤運算任務容量使用率

AWS Batch 提供多個 API 操作,您可以一起用來追蹤佇列中 ECS、EKS 和 Fargate 運算任務的容量使用率。監控工作流程取決於連接到任務佇列的排程政策類型。

對於使用先進先出 (FIFO) 排程政策的任務佇列:

  1. 檢查總佇列使用率 (GetJobQueueSnapshot)。

  2. 依狀態列出任務,例如 RUNNABLERUNNING(ListJobs)。

  3. 檢查任何指定的任務 (DescribeJobs)。

對於使用公平共用 (FSS) 排程政策的任務佇列:

  1. 檢查總佇列使用率 (GetJobQueueSnapshot)。

  2. 檢視每個共用使用率 (GetJobQueueSnapshot)。

  3. 依狀態列出主動影響使用率的任務和共用,例如 RUNNABLERUNNING(ListJobs)。

  4. 檢查任何指定的任務 (DescribeJobs)。

以下各節會詳細說明每個步驟。

如需追蹤服務任務容量使用率的資訊,請參閱 追蹤服務任務容量使用率

檢查佇列使用率

GetJobQueueSnapshot 回應中的 queueUtilization 欄位提供point-in-time檢視。容量是以運算任務vCPUs 測量。

對於使用公平共用排程政策的任務佇列,回應也包含每個共用明細,以便您可以查看容量如何分散在共用中。如需詳細資訊,請參閱檢視每個共用使用率

檢視容量使用率 (AWS CLI)

使用 get-job-queue-snapshot 命令擷取任務佇列容量使用率的快照。

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": "vCPU", "quantity": 96.0 } ], "lastUpdatedAt": 1700000000000 } }

在此範例中,佇列在所有分派的任務中總共耗用 96 vCPUs。

Fair-share scheduling (FSS)

以下是公平共用任務佇列的範例回應。queueUtilization 物件包含佇列中所有分派任務所耗用之總容量的point-in-time快照,以及每個共用明細。

{ "frontOfQueue": { "jobs": [], "lastUpdatedAt": 1700000000000 }, "queueUtilization": { "totalCapacityUsage": [ { "capacityUnit": "vCPU", "quantity": 192.0 } ], "fairshareUtilization": { "activeShareCount": 2, "topCapacityUtilization": [ { "shareIdentifier": "team-a", "capacityUsage": [ { "capacityUnit": "vCPU", "quantity": 128.0 } ] }, { "shareIdentifier": "team-b", "capacityUsage": [ { "capacityUnit": "vCPU", "quantity": 64.0 } ] } ] }, "lastUpdatedAt": 1700000000000 } }

在此範例中, totalCapacityUsage 欄位顯示佇列總共耗用 192 vCPUs。fairshareUtilization 物件會顯示每個共用明細。共享team-a耗用 128 vCPUs,共享team-b耗用 64 vCPUs。

檢視每個共用使用率

對於具有公平共用排程政策的任務佇列, 的queueUtilization回應GetJobQueueSnapshot包含具有陣列的fairshareUtilization物件,該topCapacityUtilization陣列會依耗用量列出最佳作用中共用。

此資訊可協助您:

  • 識別哪些共用耗用最多資源。

  • 驗證公平共用排程是否如預期分配資源。

  • 偵測可能飽和或充分利用其配置的共用。

  • 決定是否在排程政策中調整共享權重。

如需公平共用排程政策的詳細資訊,請參閱 公平共用排程政策

依狀態和共用列出運算任務

在您識別整體佇列和每個共用使用率之後,請使用 ListJobs API 操作來尋找主動貢獻使用率的運算任務。您可以依任務狀態進行篩選,以查看處於其他狀態的 RUNNINGRUNNABLE或 任務。對於具有公平共用排程政策的佇列,您也可以依共用識別符進行篩選,將結果縮小至特定共用。

注意

SHARE_IDENTIFIER 篩選條件是唯一可與 jobStatus 參數結合的篩選條件。當您使用其他篩選條件時,會忽略 jobStatus 參數。

列出運算任務 (AWS CLI)

使用 list-jobs 命令搭配 --job-status 參數來依狀態篩選。

檢視佇列中正在執行的運算任務:

aws batch list-jobs \ --job-queue my-job-queue \ --job-status RUNNING

檢視等待分派的運算任務:

aws batch list-jobs \ --job-queue my-job-queue \ --job-status RUNNABLE

對於具有公平共用排程政策的佇列,請使用 --filters 參數搭配 SHARE_IDENTIFIER 列出特定共用的任務。當您識別具有高容量耗用量的共享,並想要查看哪些任務負責時,這很有用。

僅列出公平共用佇列中共用的RUNNING運算任務:

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

以下是列出執行中運算任務的範例回應。

{ "jobSummaryList": [ { "jobArn": "arn:aws:batch:us-east-1:123456789012:job/b5e7d839-9ff9-5d76-9f3b-0b6f9g5c8e4f", "jobId": "b5e7d839-9ff9-5d76-9f3b-0b6f9g5c8e4f", "jobName": "my-data-processing-job", "status": "RUNNING", "shareIdentifier": "team-a", "createdAt": 1700000000000, "startedAt": 1700000120000, "capacityUsage": [ { "capacityUnit": "vCPU", "quantity": 4.0 } ], "container": { "exitCode": null }, "jobDefinition": "arn:aws:batch:us-east-1:123456789012:job-definition/my-job-def:1" } ] }

檢查特定運算任務

識別感興趣的運算任務之後,請使用 DescribeJobs操作來取得任務的完整資訊,包括其目前狀態、容器詳細資訊和資源組態。

檢視特定運算任務的詳細資訊:

aws batch describe-jobs \ --jobs b5e7d839-9ff9-5d76-9f3b-0b6f9g5c8e4f

此命令會傳回任務的完整資訊,包括:

  • 任務 ARN 和目前狀態

  • 容器組態和資源需求 (vCPUs和記憶體)

  • 任務定義和運算環境詳細資訊

  • 排程優先順序和重試組態

  • 包含開始和停止時間的詳細嘗試資訊

  • 存取容器日誌的日誌串流資訊