반응형
max_active_runs
는 Airflow에서 하나의 DAG가 동시에 실행할 수 있는 최대 인스턴스 수를 제한하는 파라미터입니다. 이 설정을 사용하면 여러 DAG 인스턴스가 동시에 실행되는 것을 방지하고, 시스템에 과부하가 걸리는 것을 방지할 수 있습니다.
1.
max_active_runs
설정 방법
max_active_runs
는 기본적으로 16으로 설정되어 있습니다. 즉, 기본적으로 한 DAG에서 동시에 16개의 인스턴스가 실행될 수 있습니다. 이를 더 낮거나 높게 설정할 수 있습니다.- 예를 들어, 이 값을
1
로 설정하면, DAG가 동시에 한 번만 실행되도록 제한할 수 있습니다.
예제 1: max_active_runs
설정을 사용한 간단한 DAG
from airflow import DAG
from airflow.operators.dummy_operator import DummyOperator
from datetime import datetime, timedelta
# DAG 정의
dag = DAG(
'my_dag_with_max_active_runs',
start_date=datetime(2023, 1, 1),
max_active_runs=1, # 동시에 실행되는 최대 DAG 인스턴스 수를 1로 제한
schedule_interval=timedelta(days=1), # 하루에 한 번 실행
)
# Dummy task 정의
task1 = DummyOperator(
task_id='task1',
dag=dag,
)
task2 = DummyOperator(
task_id='task2',
dag=dag,
)
# task 의존성 설정
task1 >> task2
예제 설명
max_active_runs=1
로 설정하여, 이 DAG는 동시에 한 번만 실행됩니다. 만약 DAG가 실행 중에 새로 스케줄된 DAG 인스턴스가 있더라도, 이전 인스턴스가 완료되기 전에는 실행되지 않습니다.schedule_interval=timedelta(days=1)
로 설정하여 DAG가 하루에 한 번 실행되도록 스케줄을 설정했습니다.
예제 2: max_active_runs
를 더 높은 값으로 설정
max_active_runs
값을 더 크게 설정하면, 여러 인스턴스가 동시에 실행될 수 있습니다. 예를 들어, max_active_runs=3
으로 설정하면, 동시에 최대 3개의 DAG 인스턴스가 실행될 수 있습니다.
dag = DAG(
'my_dag_with_max_active_runs_3',
start_date=datetime(2023, 1, 1),
max_active_runs=3, # 동시에 실행되는 최대 DAG 인스턴스 수를 3으로 제한
schedule_interval=timedelta(days=1), # 하루에 한 번 실행
)
task1 = DummyOperator(
task_id='task1',
dag=dag,
)
task2 = DummyOperator(
task_id='task2',
dag=dag,
)
task1 >> task2
이 경우, DAG가 동시에 3번까지 실행될 수 있기 때문에, 만약 4번째 DAG 인스턴스가 예약되면 1개의 DAG 인스턴스가 완료될 때까지 대기하게 됩니다.
max_active_runs
활용 예시
max_active_runs
는 예를 들어, 시간이 오래 걸리는 작업을 실행할 때 유용합니다. 여러 인스턴스가 동시에 실행되면 리소스가 과부하될 수 있으므로, 이 값을 조정하여 리소스 소모를 제한할 수 있습니다.
2. 예시 시나리오:
- DAG가 매일 실행되며, 데이터 처리 작업이 오래 걸리는 경우,
max_active_runs
를 1로 설정하여 하나의 DAG 인스턴스가 완료되기 전에는 다른 인스턴스가 실행되지 않도록 할 수 있습니다. - 예를 들어, 중요한 데이터 파이프라인이 여러 개의 단계를 포함하는데, 이전 단계가 완료되지 않으면 다음 단계를 실행할 수 없을 때
max_active_runs=1
을 설정하는 것이 좋습니다.
3. 결론
max_active_runs
는 DAG 인스턴스가 동시에 실행되는 수를 제한합니다.- 이를 통해 시스템 과부하를 방지하고, 특히 리소스가 많이 소모되는 작업을 안정적으로 실행할 수 있습니다.
- 값을 적절히 설정하면 DAG 실행을 효율적으로 관리할 수 있습니다.
Airflow에서 DAG가 동시에 실행되는 수를 제어하는 데 중요한 역할을 하므로, 시스템의 용량이나 작업의 특성에 맞게 이 설정을 조정하는 것이 좋습니다.
반응형
'Data Mining & Distributed > Airflow' 카테고리의 다른 글
[ Airflow ] ubuntu + Airflow + postgresql + dask - 설치하기 (0) | 2025.01.14 |
---|---|
[ Airflow ] 3가지 방법으로 동시 실행 제한하기 (0) | 2025.01.02 |
[ Airflow ] concurrency - 동시 작업 개수 제한하기 (0) | 2025.01.02 |
[ Airflow ] task_concurrency - 동일 작업 개수 제한하기 (0) | 2025.01.02 |
[ Airflow ] RestAPI 사용하기 (0) | 2024.12.31 |