Size: a a a

2020 November 12

GB

Georgy Borodin in Airflow
Konstantin
+ ведь если даг захочет запуститься по расписанию в то время пока шедулер будет просыпаться, то тоже может такс отвалиться разок
Нет, ничего не отвалится, шедулер запустится и подхватит шустренько всё
источник

GB

Georgy Borodin in Airflow
В общем и целом, сейчас только так решается проблема деградации шедулера, ничего лучше посоветовать до релиза 2-ой версии не могу(
источник

K

Konstantin in Airflow
Хорошо, спасиб)
источник

VS

Vladislav 👻 Shishkov... in Airflow
Konstantin
привет всем, подскажите пожалуйста, возсожно ли как-то перебороть боль у Airflow со скедулером.
Просто скедулер у Airflow на Celery часто зависал при 150 дагах с 10 тасками, а если что-то валилось, то без рук не поподнять все обратно
А сейчас перехожу на Кубер и там должно быть примерно 3000 дагов и по опыту я понимаю, что скедулер не вывезет такую нагрузку, тк он либо будет постоянно подвисать, либо даги будут очень медленно запускаться

Подскажете как с этим бороться?
Какие настройки шедулера? Собираете ли метрики, можете показать график загрузки?
источник

K

Konstantin in Airflow
А сталкивались с тем, что если единовременно по расписанию запускается 200+ дагов, то шедулер просто виснет и его опятьже надо запускать ?
источник

K

Konstantin in Airflow
Vladislav 👻 Shishkov
Какие настройки шедулера? Собираете ли метрики, можете показать график загрузки?
Метрик не собирали
По прошлым настройкам много что тюнилось, сейчас откопаю их
источник

GB

Georgy Borodin in Airflow
Konstantin
А сталкивались с тем, что если единовременно по расписанию запускается 200+ дагов, то шедулер просто виснет и его опятьже надо запускать ?
Ну вот проблемы с шедулером я разрешил ограничением времени его работы и докидыванием ему ресурсов. Хочу ещё попробовать сериализацию дагов, но всё руки не доходят
источник

GB

Georgy Borodin in Airflow
Плюс, были реальные проблемы с дагами в несколько тысяч тасков, в итоге разбил на помельче
источник

VS

Vladislav 👻 Shishkov... in Airflow
Georgy Borodin
Плюс, были реальные проблемы с дагами в несколько тысяч тасков, в итоге разбил на помельче
На этот случай есть отдельная настройка у шедулера, запуск количества тасок в рамках одного дага.
источник

K

Konstantin in Airflow
Georgy Borodin
Плюс, были реальные проблемы с дагами в несколько тысяч тасков, в итоге разбил на помельче
от комплексных дагов я отошел, тк были даги по 40 тасок и после деплоя сразу 8 из них запускались параллельно + это было на локальном экзекьютере, так что скедулер тоже вис из-за этого
Пришлось во время деплоя его всегда перезапускать
источник

GB

Georgy Borodin in Airflow
Vladislav 👻 Shishkov
На этот случай есть отдельная настройка у шедулера, запуск количества тасок в рамках одного дага.
Хм, не пробовал.
Мне сильно помогло выставление weight_rule=absolute и увеличение количества потоков, а в слаке эирфлоу как раз совет по ограничению времени его работы, пока полёт нормальный, но дагов у нас планируется очень много, генерятся они динамически, так что прям уповаю на 2 версию с возможностью поднятия нескольких шедулеров
источник

VS

Vladislav 👻 Shishkov... in Airflow
Чтобы рестартить не один а n+? Такое...
источник

VS

Vladislav 👻 Shishkov... in Airflow
Начните собирать метрики и логи и начинайте копать, в чем проблема.
источник

K

Konstantin in Airflow
AIRFLOW__WEBSERVER__WEB_SERVER_WORKER_TIMEOUT=300
AIRFLOW__WEBSERVER__WORKER_REFRESH_INTERVAL=1800
AIRFLOW__CORE__CHECK_SLAS=False
AIRFLOW__CORE__DAGBAG_IMPORT_TIMEOUT=3000
AIRFLOW__CELERY__WORKER_CONCURRENCY=20
AIRFLOW__SCHEDULER__MAX_THREADS=8
AIRFLOW__SCHEDULER__SCHEDULER_HEALTH_CHECK_THRESHOLD=60
AIRFLOW__CORE__SQL_ALCHEMY_POOL_SIZE=0
AIRFLOW__CORE__SQL_ALCHEMY_MAX_OVERFLOW=-1
AIRFLOW__CORE__PARALLELISM=80
max_active_runs=1
источник

K

Konstantin in Airflow
+ еще так тюнили
AIRFLOW__CORE__PARALLELISM=2000
AIRFLOW__CELERY__WORKER_CONCURRENCY=500
AIRFLOW__SCHEDULER__MAX_THREADS=16
AIRFLOW__CELERY__WORKER_AUTOSCZLE=1000,500
AIRFLOW_CORE_NON_POOLED_TASK_SLOT_COUNT=2000
источник

K

Konstantin in Airflow
у AIRFLOW__SCHEDULER__MAX_THREADS много вариантов было при тестах
источник

GB

Georgy Borodin in Airflow
Konstantin
у AIRFLOW__SCHEDULER__MAX_THREADS много вариантов было при тестах
Советуют число ядер - 1
источник

K

Konstantin in Airflow
Konstantin
+ еще так тюнили
AIRFLOW__CORE__PARALLELISM=2000
AIRFLOW__CELERY__WORKER_CONCURRENCY=500
AIRFLOW__SCHEDULER__MAX_THREADS=16
AIRFLOW__CELERY__WORKER_AUTOSCZLE=1000,500
AIRFLOW_CORE_NON_POOLED_TASK_SLOT_COUNT=2000
и при таком конфиге жить с 300 дагами по 5-15 тасок стало более менее реально
источник

GB

Georgy Borodin in Airflow
Vladislav 👻 Shishkov
Чтобы рестартить не один а n+? Такое...
Ну вполне ожидаемо, что проблема с деградацией решится, и рестартить не придётся + скалирование будет возможно
источник

GB

Georgy Borodin in Airflow
Konstantin
и при таком конфиге жить с 300 дагами по 5-15 тасок стало более менее реально
А чисто пальцем в небо: сабдагов там нет?
источник