이 문서에서는 압축 배치 정책을 지정하여 작업의 VM 간에 네트워크 지연 시간을 줄이는 방법을 설명합니다.
영역 내에서 물리적으로 서로 가까운 VM 호스트를 사용하면 VM 간의 네트워크 지연 시간을 줄일 수 있습니다. 이러한 성능 이점은 MPI 라이브러리를 사용하여 통신하는 태스크와 같이 긴밀하게 결합된 태스크가 있는 작업에 특히 유용합니다. 작업을 만들 때 압축 배치 정책을 지정하여 작업의 VM이 서로 더 가깝게 배치되도록 할 수 있습니다. 그렇지 않으면 기본 VM 배치는 일반적으로 전원 장애의 영향을 최소화하기 위해 별도의 호스트에 VM을 분산합니다.
압축 배치 정책에 대해 자세히 알아보려면 Compute Engine 문서에서 배치 정책 정보를 참조하세요.
시작하기 전에
- Batch를 사용한 적이 없으면 Batch 시작하기를 검토하고 프로젝트 및 사용자 기본 요건을 완료하여 Batch를 사용 설정하세요.
-
작업을 생성하는 데 필요한 권한을 얻으려면 관리자에게 다음 IAM 역할을 부여해 달라고 요청하세요.
-
프로젝트에 대한 Batch 작업 편집자(
roles/batch.jobsEditor
) -
기본적으로 기본 Compute Engine 서비스 계정인 작업의 서비스 계정에 대한 서비스 계정 사용자(
roles/iam.serviceAccountUser
)
역할 부여에 대한 자세한 내용은 액세스 관리를 참조하세요.
-
프로젝트에 대한 Batch 작업 편집자(
제한사항
간단한 배치 정책의 일반적인 제한사항 외에도 Batch에는 다음과 같은 제한사항이 있습니다.
- 압축 배치 정책을 사용하도록 작업을 지정하면 Batch가 작업의 VM에 대한 압축 배치 정책을 자동으로 만들고 삭제합니다. 작업에 대한 기존 압축 배치 정책은 지정할 수 없습니다.
- 압축 배치 정책에 VM 수를 지정할 수 없습니다. 작업의 압축 배치 정책은 작업이 실행되는 VM 수에 관계없이 적용됩니다.
배치 정책을 사용하는 작업 만들기 및 실행
gcloud CLI 또는 Batch API를 사용하여 collocation
필드를 COLLOCATED
로 설정하여 압축 배치 정책을 사용하도록 작업에 지정할 수 있습니다.
gcloud
작업의 구성 세부정보를 지정하고
collocation
필드를COLLOCATED
로 설정하는 JSON 파일을 만드세요.예를 들어 압축 배치 정책을 지정하는 기본 스크립트 작업을 만들려면 다음 콘텐츠로 JSON 파일을 만듭니다.
{ "taskGroups": [ { "taskSpec": { "runnables": [ { "script": { "text": "echo Hello world from task ${BATCH_TASK_INDEX}" } } ] }, "taskCount": 3 } ], "allocationPolicy": { "placement": { "collocation": "COLLOCATED" } }, "logsPolicy": { "destination": "CLOUD_LOGGING" } }
작업을 만들고 실행하려면
gcloud batch jobs submit
명령어를 사용합니다.gcloud batch jobs submit JOB_NAME \ --location LOCATION \ --config JSON_CONFIGURATION_FILE
다음을 바꿉니다.
JOB_NAME
: 작업의 이름LOCATION
: 작업의 위치JSON_CONFIGURATION_FILE
: 작업의 구성 세부정보가 포함된 JSON 파일의 경로
API
collocation
필드를 COLLOCATED
로 설정하는 jobs.create
메서드에 대해 POST
요청을 실행합니다.
예를 들어 압축 배치 정책을 지정하는 기본 스크립트 작업을 만들려면 다음 요청을 수행합니다.
POST https://batch.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/jobs?job_id=JOB_NAME
{
"taskGroups": [
{
"taskSpec": {
"runnables": [
{
"script": {
"text": "echo Hello world from task ${BATCH_TASK_INDEX}"
}
}
]
},
"taskCount": 3
}
],
"allocationPolicy": {
"placement": {
"collocation": "COLLOCATED"
}
},
"logsPolicy": {
"destination": "CLOUD_LOGGING"
}
}
다음을 바꿉니다.
다음 단계
- 작업을 만들거나 실행하는 데 문제가 있는 경우 문제 해결을 참조하기
- 작업 및 태스크 보기
- 작업 만들기 옵션 자세히 알아보기