이 문서에서는 제한 시간을 설정하여 태스크 및 실행 가능 항목의 실행 시간을 제한하는 방법을 설명합니다.
제한 시간은 태스크 또는 실행 가능 항목을 실행할 수 있는 시간을 지정합니다. Batch에서는 작업을 14일 이상 실행하는 것을 허용하지 않으며 개별 태스크 및 실행 가능 항목의 기본 제한 시간을 설정하지 않습니다. 따라서 개별 태스크 또는 실행 가능 항목이 자동 실패 전까지 최대 14일 동안 실행될 수 있습니다. 하지만 태스크와 실행 가능 항목이 이렇게 오랫동안 실행되지 않을 경우 이 구성으로 인해 예상치 못한 비용과 지연이 발생할 수 있습니다. 과도한 실행 시간을 방지하기 위해 태스크 및 실행 가능 항목에 제한 시간을 설정할 수 있습니다.
시작하기 전에
- Batch를 사용한 적이 없으면 Batch 시작하기를 검토하고 프로젝트 및 사용자 기본 요건을 완료하여 Batch를 사용 설정하세요.
-
작업을 생성하는 데 필요한 권한을 얻으려면 관리자에게 다음 IAM 역할을 부여해 달라고 요청하세요.
-
프로젝트에 대한 일괄 작업 편집자(
roles/batch.jobsEditor
) -
기본적으로 기본 Compute Engine 서비스 계정인 작업의 서비스 계정에 대한 서비스 계정 사용자(
roles/iam.serviceAccountUser
)
역할 부여에 대한 자세한 내용은 액세스 관리를 참조하세요.
-
프로젝트에 대한 일괄 작업 편집자(
시간 초과 설정
실행 가능 항목, 태스크 또는 둘 다에 제한 시간을 설정할 수 있습니다. 실행 가능 항목의 제한 시간은 해당 실행 가능 항목의 최대 실행 시간을 지정합니다. 태스크의 제한 시간은 해당 태스크의 최대 실행 시간을 지정하며, 이는 실행 가능 항목의 모든 개별 실행 시간의 합계입니다. 예를 들어 태스크에 1분 동안 동시에 실행되는 3개의 실행 가능 항목이 있는 경우 태스크 실행 시간은 1분이 아니라 3분입니다.
실행 가능 항목과 실행 가능 항목의 태스크 모두에 대한 제한 시간과 같이 겹치는 제한 시간을 설정한 경우 자동 실패를 트리거하려면 제한 시간을 하나만 초과하면 됩니다. 예를 들어 태스크 제한 시간을 60초로 설정하고 해당 태스크의 각 실행 가능 항목 제한 시간을 120초로 설정했다고 가정해 보겠습니다. 그런 다음 실행 가능 항목의 실행 시간 합계가 60초를 초과하면 이 예시 태스크와 모든 실행 가능 항목이 실패하고 120초 제한 시간을 트리거할 수 없습니다.
작업의 태스크와 실행 가능 항목에 설정할 적절한 제한 시간을 선택하려면 이전에 실행한 유사한 작업의 로그를 분석하여 유사한 워크로드에 대한 태스크와 실행 가능 항목의 일반적인 실행 시간을 확인합니다.
태스크 제한 시간 설정
Google Cloud CLI 또는 REST API를 사용하여 JSON 파일의 taskSpec
객체에서 maxRunDuration
필드를 포함하는 작업을 만듭니다.
{
"taskGroups": [
{
"taskSpec": {
...
"maxRunDuration": "TIMEOUT"
}
}
]
}
TIMEOUT
을 태스크 실행을 허용할 최대 정수 또는 소수 값(초)으로 바꿉니다. 예를 들면 255s
입니다.
태스크에 대해 255초 제한 시간을 설정하는 작업에는 다음과 유사한 JSON 구성 파일이 포함됩니다.
{
"taskGroups": [
{
"taskSpec": {
"runnables": [
{
"script": {
"text": "echo Hello world! This is task ${BATCH_TASK_INDEX}. This job has a total of ${BATCH_TASK_COUNT} tasks."
}
}
],
"maxRunDuration": "255s"
},
"taskCount": 3
}
],
"logsPolicy": {
"destination": "CLOUD_LOGGING"
}
}
태스크의 제한 시간이 초과되면 태스크가 자동으로 실패하고 초과된 제한 시간은 작업의 상태 이벤트 및 로그에 종료 코드 50005
로 표시됩니다. 초과된 제한 시간에 대한 자세한 내용은 종료 코드 50005 문제 해결 문서를 참조하세요.
실행 가능 항목 제한 시간 설정
Google Cloud CLI 또는 REST API를 사용하여 JSON 파일의 runnable
객체에서 timeout
필드를 포함하는 작업을 만듭니다.
{
"taskGroups": [
{
"taskSpec": {
"runnables": [
{
...
"timeout": "TIMEOUT"
}
]
}
}
]
}
TIMEOUT
을 실행 가능 항목 실행을 허용할 최대 정수 또는 소수 값(초)으로 바꿉니다. 예를 들면 3.5s
입니다.
실행 가능 항목에 대해 3.5초 제한 시간을 설정하는 작업에는 다음과 유사한 JSON 구성 파일이 포함됩니다.
{
"taskGroups": [
{
"taskSpec": {
"runnables": [
{
"script": {
"text": "echo Hello world! This is task ${BATCH_TASK_INDEX}. This job has a total of ${BATCH_TASK_COUNT} tasks."
},
"timeout": "3.5s"
}
]
},
"taskCount": 3
}
],
"logsPolicy": {
"destination": "CLOUD_LOGGING"
}
}
실행 가능 항목의 제한 시간이 초과되면 실행 가능 항목이 자동으로 실패하고 초과된 제한 시간은 작업의 상태 이벤트 및 로그에 종료 코드 50005
로 표시됩니다. 초과된 제한 시간에 대한 자세한 내용은 종료 코드 50005 문제 해결 문서를 참조하세요.
다음 단계
- 작업을 만들거나 실행하는 데 문제가 있는 경우 문제 해결을 참조하기
- 작업 및 태스크 보기
- 작업 만들기 옵션 자세히 알아보기
- 로그를 이용한 작업 분석 방법 알아보기