Запуск `airflow scheduler` запускает 33 процесса планировщика

При использовании LocalExecutor с MySQL бэкэндом запуск airflow scheduler в моем блоке Centos 6 создает 33 процесса планировщика, например deploy 55362 13.5 1.8 574224 73272 ? Sl 18:59 7:42 /usr/local/bin/python2.7 /usr/local/bin/airflow scheduler deploy 55372 0.0 1.5 567928 60552 ? Sl 18:59 0:00 /usr/local/bin/python2.7 /usr/local/bin/airflow scheduler deploy 55373 0.0 1.5 567928 60540 ? Sl 18:59 0:00 /usr/local/bin/python2.7 /usr/local/bin/airflow scheduler ... Они отличаются от процессов Executor, основных и рабочих процессов Gunicorn. Запуск его с SequentialExecutor (sqlite backend) запускает только один процесс планировщика.
Airflow все еще работает (DAG запускаются), но огромное количество этих процессов заставляет меня думать, что что-то не так.
Когда я запускаю select * from job where state = 'running'; в базе данных возвращается только 5 SchedulerJob строк. Это нормально?


person Collin Meyers    schedule 10.03.2017    source источник


Ответы (2)


Да это нормально. Это процессы планировщика. Вы можете управлять этим с помощью параметра ниже в airflow.cfg.

# The amount of parallelism as a setting to the executor. This defines
# the max number of task instances that should run simultaneously
# on this airflow installation
parallelism = 32

Они создаются планировщиком, pid которого можно найти в файле airflow-scheduler.pid.

поэтому 32 + 1 = 33 процесса, которые вы видите.

Надеюсь, это развеет ваши сомнения.

Ваше здоровье!

person Priyank Mehta    schedule 11.03.2017
comment
Спасибо, Приянк! Вы были абсолютно правы, изменение параметра параллелизма меняет количество этих scheduler процессов. Думаю, я запутался, я думал, что параллелизм относится к процессам-исполнителям, которые фактически запускают задачи. - person Collin Meyers; 12.03.2017
comment
@CollinMeyers - это процессы-исполнители. Они просто названы планировщиком в вашем списке PID. Если вы запустите планировщик для LocalExecutor, будет запущен только 1 планировщик. - person Bolke de Bruin; 29.10.2017

Начиная с версии 1.10.3, это то, что я обнаружил. Мои настройки:

parallelism = 32
max_threads = 4

Всего есть

  • 1 (основной) +
  • 32 (исполнителей) +
  • 1 (dag_processor_manager) +
  • 4 (процессоры dag)

= 38 процессов!

person rubpa    schedule 08.08.2019
comment
Эй, я ненавижу эти даг-процессоры, они не подчиняются sql_alchemy_pool_size. Можете ли вы сказать мне, как ограничить количество dag_processors? - person pPanda_beta; 10.11.2020
comment
Да, сейчас я ограничился max_threads = 1. Мне до сих пор непонятно, почему во имя потоков создаются процессы, и если вообще создаются процессы, то почему один и тот же пул соединений db не используется всеми процессами? - person pPanda_beta; 13.11.2020