При использовании 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
строк. Это нормально?
Запуск `airflow scheduler` запускает 33 процесса планировщика
Ответы (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
Спасибо, Приянк! Вы были абсолютно правы, изменение параметра параллелизма меняет количество этих
scheduler
процессов. Думаю, я запутался, я думал, что параллелизм относится к процессам-исполнителям, которые фактически запускают задачи.
- person Collin Meyers; 12.03.2017
@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
Эй, я ненавижу эти даг-процессоры, они не подчиняются
sql_alchemy_pool_size
. Можете ли вы сказать мне, как ограничить количество dag_processors?
- person pPanda_beta; 10.11.2020
Да, сейчас я ограничился
max_threads = 1
. Мне до сих пор непонятно, почему во имя потоков создаются процессы, и если вообще создаются процессы, то почему один и тот же пул соединений db не используется всеми процессами?
- person pPanda_beta; 13.11.2020