💾 Data/Airflow

[Airflow] Airflow Configuration

heywantodo 2023. 12. 18. 11:29
728x90
반응형

[Airflow] Airflow Configuration

Airflow를 사용하면서 튜닝이 가능한 여러 설정이 있는데,

그 설정들에 대해 정리 해보고자 한다.

 

Airflow 레벨

airflow 환경을 조정하는 것이므로 모든 dag에 영향을 준다.

 

core

config 명 설명
parallelism 단일 Airflow 환경 내에서 동시에 실행 할 수 있는 최대 task 수
max_activate_tasks_per_dag DAG당 한 번에 스케줄링되는 최대 task 수를 결정
max_activate_runs_per_dag 1개의 DAG안에서 최대 활성화되는 DAG의 수를 제어
dag_file_processor_timeout DAG 파일을 처리하는 DagFileProcessor가 시간 초과되기 전에 실행할 수 있는 시간
dagbag_import_timeout DAG 개체를 가져올 수 있는 dagbag 시간

 

Scheduler

config 명 설명
min_file_process_interval 각 DAG 파일은 해당 설정 값의 초 단위로 구문이 분석됨
복잡한 코드로 생성된 동적 DAG의 경우 성능에 영향을 미치지 않도록 해당 값을 조정
dag_dir_list_interval DAG 디렉터리에서 새 파일을 검색하는 빈도(초)
parsing_processes DAG를 구문 분석하기 위해 여러 프로세스를 병렬로 실행할 수 있음,
병렬로 실행할 수 있는 프로세스의 수를 정의
file_parsing_sort_mode 구문 분석 순서를 결정하기 위해 DAG 파일을 나열하고 정렬하는 방법을 결정
modified_time (default), random_seeded_by_host, alphabetical 중 하나로 결정
scheduler_heartbeat_sec 새 작업을 트리거하기 위해 스케줄러를 실행해야 하는 빈도(초)
max_dagruns_to_create_per_loop 스케줄러 loop당 DAG 실행을 생성 할 최대 DAG 수
max_tis_per_query 기본 스케줄링 loop에서 메타스토어에 대한 쿼리의 배치 크기 변경

 

DAG 레벨

DAG 수준 설정은 특정 DAG에만 적용되며 DAG 코드에 정의된다.

DAG 수준과 Airflow 환경 수준에 모두 적용된 경우 DAG 수준 설정이 우선된다.

config 명 설명
max_active_runs DAG에 허용되는 활성 DAG 실행의 최대 수 
max_active_task 하나의 DAG가 실행될 때 동시에 실행할 수 있는 총 task의 수
DAG 내의 병렬 처리를 제어
concurrency 모든 DAG 실행에서 동시에 실행할 수 있는 최대 task 인스턴스 수

 

Task 레벨

task 연산자에서 정의되며, 성능에 대한 보다 세부적인 제어가 가능하다.

config 명 설명
max_active_tis_per_dag 동일한 task가 모든 DAG 실행에서 동시에 실행할 수 있는 최대 횟수
pool task에서 사용할 수 있는 pool의 사이즈를 정의
임의의 task group의 동시 인스턴스 수를 제한하는 방법

 

참고

https://brownbears.tistory.com/626

728x90
반응형