이 문서에서는 압축 배치 정책을 지정하여 작업의 VM 간에 네트워크 지연 시간을 줄이는 방법을 설명합니다.
영역 내에서 VM 호스트를 서로 물리적으로 더 가깝게 배치하면 VM 간의 네트워크 지연 시간을 줄일 수 있습니다. 이러한 성능상의 이점은 MPI 라이브러리를 사용하여 통신하는 작업과 같이 긴밀하게 결합된 태스크가 있는 작업에 특히 유용합니다. 작업을 만들 때 원하는 경우 압축 배치 정책을 지정하여 작업의 VM이 서로 더 가까이 위치하도록 요구할 수 있습니다. 그렇지 않으면 기본 VM 배치는 일반적으로 전원 장애의 영향을 최소화하기 위해 별도의 호스트에 VM을 분산합니다.
압축 배치 정책에 관한 자세한 내용은 Compute Engine 문서의 배치 정책 정보를 참고하세요.
시작하기 전에
- Batch를 사용한 적이 없으면 Batch 시작하기를 검토하고 프로젝트 및 사용자 기본 요건을 완료하여 Batch를 사용 설정하세요.
-
작업을 만드는 데 필요한 권한을 얻으려면 관리자에게 다음 IAM 역할을 부여해 달라고 요청하세요.
-
프로젝트에 대한 일괄 작업 편집자(
roles/batch.jobsEditor
) -
기본적으로 기본 Compute Engine 서비스 계정인 작업의 서비스 계정에 대한 서비스 계정 사용자(
roles/iam.serviceAccountUser
)
역할 부여에 대한 자세한 내용은 프로젝트, 폴더, 조직에 대한 액세스 관리를 참조하세요.
-
프로젝트에 대한 일괄 작업 편집자(
제한사항
압축 배치 정책의 일반적인 제한사항 외에도 배치에는 다음과 같은 제한사항이 있습니다.
- 작업에 압축 배치 정책을 사용하도록 지정하면 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"
}
}
다음을 바꿉니다.
다음 단계
- 작업을 만들거나 실행하는 데 문제가 있는 경우 문제 해결을 참조하기
- 작업 및 태스크 보기
- 작업 만들기 옵션 자세히 알아보기