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의 동시 인스턴스 수를 제한하는 방법 |
참고
반응형
'💾 Data > Airflow' 카테고리의 다른 글
[Airflow] Docker compose Airflow에서 Cli 사용하기 (0) | 2024.04.03 |
---|---|
[Airflow] 조건에 따라 Task 실행 (1) | 2024.01.04 |
[Airflow] Celery executor, Flower (0) | 2023.08.10 |
[Airlfow] Sensor (0) | 2023.07.09 |
[Airflow] 병렬 처리 Task (0) | 2023.06.22 |