Могу ли я увеличить скорость обработки, добавив больше процессоров операторам в Airflow?
В airflow.cfg
есть раздел под названием [operators]
, где default_cpus
был установлен на 1
а также default_ram
а также default_disk
оба были настроены на 512
,
Я хотел бы понять, получу ли я улучшения в скорости обработки, если я увеличу эти параметры или нет.
1 ответ
Я взглянул на источники, и эти настройки доступны всем операторам, но они никогда не используются ни операторами, ни исполнителями.
Итак, я немного вернулся в историю и взглянул на коммит, в котором были представлены эти параметры, и они цитируют тикет JIRA, который приводит к этому PR:
необязательные требования к ресурсам для использования с менеджерами ресурсов, такими как пряжа и мезо
Исполнитель Mesos, однако, является вкладом сообщества, который не использует эти свойства и просто назначает одинаковое количество ресурсов для каждой задачи, а исполнитель YARN еще не существует AFAIK (по состоянию на версию 1.9).
Однажды у меня была дискуссия с командой Airflow, чтобы понять, есть ли способ назначать ресурсы для каждой задачи с помощью исполнителя Mesos, и они ответили мне своей стратегией назначения ресурсов задачам с помощью исполнителя Celery, в случае, если это может быть помочь вам понять, как управлять ресурсами.
Что касается основного вопроса, который вы задаете в более общем смысле, то тип пропускной способности, которую вы можете получить из задачи в зависимости от назначаемых ей ресурсов, во многом зависит от самой задачи: конечно, очень ресурсоемкий Задача, которая может использовать несколько процессоров, будет видеть скачки скорости, если вы назначите ей несколько ядер, в то время как интенсивная задача ввода-вывода (например, копирование данных между различными системами), вероятно, не увидит значительного улучшения.