View a markdown version of this page

서비스 작업 용량 사용률 추적 - AWS Batch

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

서비스 작업 용량 사용률 추적

AWS Batch 는 대기열의 서비스 작업에 대한 용량 사용률을 추적하는 데 함께 사용할 수 있는 여러 API 작업을 제공합니다. 모니터링 워크플로는 작업 대기열에 연결된 예약 정책의 유형에 따라 달라집니다.

선입선출(FIFO) 예약 정책을 사용하는 작업 대기열의 경우:

  1. 총 대기열 사용률(GetJobQueueSnapshot)을 확인합니다.

  2. SCHEDULEDRUNNING (ListServiceJobs)와 같은 작업을 상태별로 나열합니다.

  3. 지정된 작업(DescribeServiceJob)을 검사합니다.

공정 공유(FSS) 또는 할당량 관리(QM) 예약 정책을 사용하는 작업 대기열의 경우:

  1. 총 대기열 사용률(GetJobQueueSnapshot)을 확인합니다.

  2. 공유당 사용률(GetJobQueueSnapshot)을 봅니다.

  3. 상태별로 작업을 나열하고 SCHEDULEDRUNNING ()와 같이 사용률에 적극적으로 기여하는 작업을 공유합니다ListServiceJobs.

  4. 지정된 작업(DescribeServiceJob)을 검사합니다.

다음 섹션에서는 각 단계를 자세히 안내합니다.

ECS, EKS 및 Fargate 컴퓨팅 작업의 용량 사용률 추적에 대한 자세한 내용은 섹션을 참조하세요컴퓨팅 작업 용량 사용률 추적.

대기열 사용률 확인

GetJobQueueSnapshot 응답의 queueUtilization 필드는 대기열에서 디스패치된 작업에서 소비되는 컴퓨팅 용량의 point-in-time 보기를 제공합니다. 용량은 서비스 작업의 인스턴스 수로 측정됩니다.

공정 공유 또는 할당량 관리 예약 정책을 사용하는 작업 대기열의 경우 응답에는 공유당 분석도 포함되어 있으므로 용량이 공유에 어떻게 분산되는지 확인할 수 있습니다. 자세한 내용은 공유당 사용률 보기 단원을 참조하십시오.

용량 사용률 보기(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": "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 작업이 해당 위치에 도달한 가장 빠른 시간과 함께 각 할당량 공유의 첫 번째 작업을 표시합니다.

공유당 사용률 보기

공정 공유 또는 할당량 관리 예약 정책이 있는 작업 대기열의 경우의 queueUtilization 응답에는 사용량별로 상위 활성 공유를 나열하는 topCapacityUtilization 배열이 있는 사용률 객체가 GetJobQueueSnapshot 포함됩니다.

이 정보는 다음에 도움이 됩니다.

  • 가장 많은 리소스를 소비하는 공유를 식별합니다.

  • 리소스가 예상대로 공유에 분산되어 있는지 확인합니다.

  • 할당을 포화시키거나 과소 사용할 수 있는 공유를 감지합니다.

  • 예약 정책 구성을 조정할지 여부를 결정합니다.

공정 공유 예약 정책에 대한 자세한 내용은 섹션을 참조하세요공정 공유 예약 정책.

할당량 공유에 대한 자세한 내용은 섹션을 참조하세요할당량 공유.

상태별 서비스 작업 나열 및 공유

전체 대기열 및 공유당 사용률을 식별한 후 ListServiceJobs API 작업을 사용하여 사용률에 적극적으로 기여하는 서비스 작업을 찾습니다. 작업 상태를 기준으로 필터링하여 RUNNING, SCHEDULED또는 다른 상태의 작업을 볼 수 있습니다. 공정 공유 또는 할당량 관리 예약 정책이 있는 대기열의 경우 공유 식별자를 기준으로 필터링하여 결과를 특정 공유로 좁힐 수도 있습니다.

참고

SHARE_IDENTIFIERQUOTA_SHARE_NAME 필터는 jobStatus 파라미터와 결합할 수 있는 유일한 필터입니다. 다른 필터를 사용하면 jobStatus 파라미터가 무시됩니다.

서비스 작업 나열(AWS CLI)

list-service-jobs 명령을 --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 객체에는 대상 서비스에서 추가 세부 정보를 가져오는 데 사용할 수 있는 서비스 리소스 식별자가 포함되어 있습니다.

특정 서비스 작업 검사

관심 있는 서비스 작업을 식별한 후 DescribeServiceJob 작업을 사용하여 현재 상태, 서비스 리소스 식별자, 세부 시도 정보 등 작업에 대한 포괄적인 정보를 가져옵니다.

특정 서비스 작업에 대한 세부 정보를 봅니다.

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

이 명령은 다음을 포함하여 작업에 대한 포괄적인 정보를 반환합니다.

  • 작업 ARN 및 현재 상태

  • 서비스 리소스 식별자(예: SageMaker 훈련 작업 ARN)

  • 예약 우선 순위 및 재시도 구성

  • 원래 서비스 파라미터를 포함하는 서비스 요청 페이로드

  • 시작 및 중지 시간이 포함된 자세한 시도 정보

  • 대상 서비스의 상태 메시지

기본 SageMaker 훈련 작업 검사

를 통해 SageMaker 훈련 작업을 모니터링할 때 AWS Batch 작업 정보와 기본 SageMaker 훈련 작업 세부 정보에 모두 액세스할 AWS Batch수 있습니다.

작업 세부 정보의 서비스 리소스 식별자에는 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 훈련 작업 상태를 모두 확인하여 작업 진행 상황을 모니터링합니다. AWS Batch 작업 상태에는 전체 작업 수명 주기를 표시하는 반면, SageMaker 훈련 작업 상태는 훈련 프로세스에 대한 서비스별 세부 정보를 제공합니다.