
在工作流任务调度的选择上,Apache DolphinScheduler 和 Apache Airflow 都是非常不错的选择。本文在相同硬件测试背景下对这两个调度平台的性能进行了对比。结果显示,DolphinScheduler 的性能表现让人惊喜,来看看具体测试数据和测试过程吧!
1
实验环境


2
压测工具
DolphinScheduler 基准压测工具
DS
batch_inser_command.sh 用于批量往 t_ds_command 插入数据 clear_history_process_instance.sh 用于清理相关数据
process_definition_code=123 工作流 process_definition_version=1 版本 batch_size=10 1 次插入 sql 数量 batch_number=10 循环总数 启动 100 个工作流 1,写入数据库 t_d_command,等待 Master 去拉取

sh batch_inser_command.sh 7546934660384 1 10 10
Airflow 基准压测工具
DS
exportAirflow__DATABASE__SQL_ALCHEMY_CONN=mysql+mysqldb://admin:admin123@10.0.0.1:3306/test 2.
Airflow dag-processor 将 dags 文件夹的文件解析并持久化到数据库 Airflow Worker, Airflow Scheduler 开始调度和测试 python airperf.py analyse --part throughput 或者 python airperf.py analyse --part latency 分析任务并发和延时
3
测评过程
指标监测
DS

DolphinScheduler 对比 Airflow 单机测评
DS

可以看出单机情况下 Apache Dolphinscheduler 和 Airflow 的 CPU 都达到接近 99%; Airflow 在不同 command 并发情况下,每分钟任务并发数(task_avg_count_start_time_per_min) 维持在 1001~1080 左右; Apache DolphinScheduler 的 task_avg_count_start_time_per_min 维持在 2120~2420 左右, 是 Airflow 的 2+ 倍。
DolphinScheduler 单机调度能力测评(任务空跑模式)
DS

DolphinScheduler 对比 Airflow 多机测评
DS

Airflow 在 4 Scheduler + 7 Worker 下,每分钟任务并发数(task_avg_count_start_time_per_min)可达到 4380; Apache DolphinScheduler 仅在 2 Master + 5 Worker 时,每分钟任务并发数(task_avg_count_start_time_per_min) 可达到 6600。
4
总结
单机环境下,Apache DolphinScheduler 每分钟调度简单 Shell 任务并发是 Airflow 的 2+ 倍。 单机环境下,Apache DolphinScheduler 每分钟调度能力(任务空跑模式) 任务并发可达到 164460。 多机环境下,DolphinScheduler 是 Apache Airflow 每分钟调度任务并发的 2 倍左右。
yum install sysbenchapt-get install sysbench
sysbench --mysql-host=ds-test-mysql.cwkplpl0hwlq.ap-southeast-1.rds.amazonaws.com --mysql-user=admin --mysql-password=adminadmin --threads=80 --time=600 --events=1000000 --mysql-db=sysbench_test /usr/share/sysbench/oltp_insert.lua prepare
sysbench --mysql-host=ds-test-mysql.cwkplpl0hwlq.ap-southeast-1.rds.amazonaws.com --mysql-user=admin --mysql-password=adminadmin --threads=80 --time=600 --events=1000000 --mysql-db=sysbench_test /usr/share/sysbench/oltp_insert.lua run
sysbench --mysql-host=ds-test-mysql.cwkplpl0hwlq.ap-southeast-1.rds.amazonaws.com --mysql-user=admin --mysql-password=adminadmin --threads=80 --time=600 --events=1000000 --mysql-db=sysbench_test /usr/share/sysbench/oltp_insert.lua cleanup

参与贡献
随着国内开源的迅猛崛起,Apache DolphinScheduler 社区迎来蓬勃发展,为了做更好用、易用的调度,真诚欢迎热爱开源的伙伴加入到开源社区中来,为中国开源崛起献上一份自己的力量,让本土开源走向全球。

参与 DolphinScheduler 社区有非常多的参与贡献的方式,包括:

贡献第一个PR(文档、代码) 我们也希望是简单的,第一个PR用于熟悉提交的流程和社区协作以及感受社区的友好度。
社区汇总了以下适合新手的问题列表:https://github.com/apache/dolphinscheduler/issues/5689
非新手问题列表:https://github.com/apache/dolphinscheduler/issues?q=is%3Aopen+is%3Aissue+label%3A%22volunteer+wanted%22
如何参与贡献链接:https://dolphinscheduler.apache.org/zh-cn/community/development/contribute.html
来吧,DolphinScheduler开源社区需要您的参与,为中国开源崛起添砖加瓦吧,哪怕只是小小的一块瓦,汇聚起来的力量也是巨大的。
参与开源可以近距离与各路高手切磋,迅速提升自己的技能,如果您想参与贡献,我们有个贡献者种子孵化群,可以添加社区小助手微信(Leonard-ds) ,手把手教会您( 贡献者不分水平高低,有问必答,关键是有一颗愿意贡献的心 )。

添加社区小助手微信(Leonard-ds)
添加小助手微信时请说明想参与贡献。
来吧,开源社区非常期待您的参与。
☞在 AWS 上部署无服务器 Apache DolphinScheduler 任务调度系统
☞Apache Dolphinscheduler 任务插件版图再添 Linkis,大幅提高计算治理能力
☞DolphinScheduler 快速构建 Hugging Face 文本分类工作流,基于工作流的机器学习训练部署太强了!





