View a markdown version of this page

跟踪计算任务容量利用率 - Amazon Batch
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

跟踪计算任务容量利用率

Amazon 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视图。计算作业的容量以 v CPUs 为单位进行测量。

对于使用公平共享调度策略的任务队列,响应还包括每份细分,因此您可以查看容量在共享之间的分布情况。有关更多信息,请参阅 查看每股利用率

查看容量利用率 (Amazon 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 } }

在此示例中,队列在CPUs 所有调度任务中总共消耗 96 v。

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 v CPUs。 该fairshareUtilization对象显示每股明细。该份额team-a消耗 128 vCPUs ,该份额team-b消耗 64 v。CPUs

查看每股利用率

对于采用公平共享调度策略的任务队列,来自的queueUtilization响应GetJobQueueSnapshot包括一个fairshareUtilization对象,该对象的topCapacityUtilization数组列出了按消耗量列出排名靠前的活跃份额。

此信息可以帮助您:

  • 确定哪些共享消耗的资源最多。

  • 验证公平共享计划是否按预期分配资源。

  • 检测可能已饱和或未充分利用其配置的股票。

  • 确定是否调整计划策略中的份额权重。

有关公平分配计划政策的更多信息,请参阅。公平份额调度策略

按状态和份额列出计算作业

确定总体队列和每共享利用率后,使用 ListJobsAPI 操作查找积极提高利用率的计算作业。您可以按作业状态进行筛选,以查看处于RUNNINGRUNNABLE、或处于其他状态的作业。对于采用公平共享计划策略的队列,您还可以按共享标识符进行筛选,将结果缩小到特定份额。

注意

SHARE_IDENTIFIER过滤器是唯一可以与jobStatus参数组合的过滤器。使用其他过滤器时,该jobStatus参数将被忽略。

列出计算任务 (Amazon CLI)

使用带--job-status参数的 list-job s 命令按状态筛选。

查看队列中正在运行的计算作业:

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 和当前状态

  • 容器配置和资源要求(v CPUs 和内存)

  • Job 定义和计算环境详情

  • 调度优先级和重试配置

  • 详细尝试信息,包括启动和停止时间

  • 用于访问容器日志的日志流信息