Post

Apache Airflow Slot개념

Apache Airflow Slot개념

Apache Airflow Slot

Slot은 DAG및 Task를 실행을 제어하기 위해 중요한 개념. 시스템 리소스 사용을 조율하는 역할. Running slotsQueued Slots는 특히 Task가 실행되거나 실행 대기 중일떄 사용하는 용어

1. Slot개념

  • Airflow의 slot은 Executor(LocalExecutor,CeleryExecutor,KubernetesExecutor)가 task실행을 관리하는데 사용
  • 특정 Executor는 제한된 슬록 수를 할당하여 시스템 과부하를 방지하고 자원을 효율적으로 사용

2. Running Slot

  • 정의 : 현재 실행중인 task들이 사용중인 slot의 수를 의미
  • 역할
    • 동시에 실행할 수 있는 task수를 제한
    • ex parallelism=10인 경우 최대 10개의 task만 동시에 수행 이 중 실행 중인 task는 Running slot으로 집계
    • Web UI > Browse > Taks Instacnes에 task상태를 통해 확인 가능

3. Queued Slot

  • 정의 : 실행 가능한 상태에 있지만, 실행 가능한 slot이 부족 하여 대기중인 task가 차지하는 slot수를 의미
  • 역할
    • slot 제한으로 task가 즉시 실행되지 못하고 대기열에 쌓임
    • Web UI > Queued상태로 표시된 task를 통해 확인가능

4. Slot관련 주요 설정

Global Paralleslism
  • 설정위치 : airflow.cfg
  • 옵션
    • parallelism=32
    • 전체에서 동시에 실행 가능한 task의 최대 수를 정의
DAG Level Paralleslism
  • 설정위치 : DAG파일에서 DAG객체 정의
  • 옵션
  • 1
    
    dag = DAG('example_dag', max_active_tasks=10)
    
  • 특정 DAG에 동시에 실행 가능한 태스크의 최대수를 정의
Task Level Slots
  • 설정위치 : Operator의 task에서 정의
  • 옵션
  • ``` my_task = PythonOperator( task_id=’example_task’, python_callable=my_function, pool=’custom_pool’ )

```

  • 특정 pool에서 task가 사용가능한 slot수를 제한

참고

This post is licensed under CC BY 4.0 by the author.