하나의 task를 가진 dag를 여러 dag_run으로 띄울 수 없는지 찾아보다가 발견하게 된 airflow dag를 더 빠르게 수행하는 법. 에어플로우에서 dag의 성능을 개선할 수 있는 변수들에는 다음과 같은 것들이 있다.
에어플로우 클러스터 전체에서 동시에 수행될 수 있는 task 인스턴스의 개수를 결정한다. airflow.cfg에서 설정할 수 있다.
각 dag는 concurrency 값을 초과하는 task 인스턴스를 동시에 수행할 수 없다. DAG 생성 시 concurrency를 설정할 수 있으며, 따로 설정하지 않는 경우 airflow.cfg에 설정된 dag_concurrency를 기본값으로 사용한다.
여러개의 dag_runs가 동시에 수행되는 경우 각 task별 task 인스턴스의 수를 제한하는 변수인것같다. 일부러 여러 dag_runs를 동시에 실행해보지 않아서 이런게 왜 필요한지 잘 모르겠다.
에어플로우 스케줄러는 하나의 DAG에 대해 max_active_runs보다 많은 DagRuns를 동시에 수행하지 않는다. concurrency와 마찬가지로 따로 설정하지 않는 경우 airflow.cfg에 설정된 max_active_runs_per_dag를 기본값으로 사용한다.
한 pool에 담긴 task들 중 동시에 수행되는 task instance가 일정값을 넘지 않도록 한다.