Запуск `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 бэкэнд) просто запускает один процесс планировщика.
Поток воздуха все еще работает (группы DAG запускаются), но огромное количество этих процессов заставляет меня думать, что что-то не так.
Когда я бегу select * from job where state = 'running'; в базе только 5 SchedulerJob строки возвращаются. Это нормально?

1 ответ

Решение

Да это нормально. Это процессы планировщика. Вы можете контролировать это, используя параметр ниже в 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 процесса, которые вы видите.

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

Ура!

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

parallelism = 32
max_threads = 4

Всего есть

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

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

Другие вопросы по тегам