Google Cloud Composer单个与多个调度程序



背景:我有一个有40个包的编写器环境,其中很少有包调用API来下载文件,有一些包将文件从gcs桶移动到gcs桶,还有一些包将文件从gcs桶移动到BigQuery。

调度程序配置:

调度程序数:1,CPU: 1个vcpu;内存:1.75 GB存储空间:1gb

它使用了所有100%的cpu和dag解析时间超过60秒

根据文档,CPU不应超过80%,DAG解析时间不应超过10秒。所以我对配置做了一些测试。

测试1:添加了一个调度程序,相同的1个vcpu, 1GB内存和1GB存储,现在因为两个调度程序,我们有2个vcpu, 2 GB内存和2 GB存储。由于某种原因,它仍然占据了调度程序cpu的100%,并且解析时间下降到10-20秒。

测试2:使用1个调度程序,我将cpu增加到1.75个vcpu,内存为1.75 GB,存储为2 GB。由于某种原因,它使用的平均cpu为1.2,cpu使用率低于80%,DAG解析时间下降到不到4秒。

我不能理解的实际原因是没有两个调度程序应该更快?我是不是漏掉了什么?

气流调度程序用于监视任务和dag,并在它们的依赖关系完成后触发任务实例。可以添加多个调度器来分配负载,但这并不能改善气流的性能。一个调度程序可能比多个调度程序提供更好的性能,这可能是由于调度程序的未充分利用导致资源消耗,但不会提高性能或对性能做出贡献。

调度程序的性能取决于气流工作者的数量、在您的环境中运行的dag和任务的数量,以及气流和环境的配置。建议从两个调度器开始,监控性能并根据您的需求进行调整。您可以查看此文档以获取更多信息。

相关内容

  • 没有找到相关文章

最新更新