【问题标题】:Different performance of Dataflow jobs in different zones不同区域中 Dataflow 作业的不同性能
【发布时间】:2022-01-13 14:55:22
【问题描述】:

我们正在开发一个使用 Apache Beam Go SDK 运行 Dataflow 作业的开源 project

我们最近注意到,在不同工作人员位置(区域)运行的作业具有非常不同的性能,例如

us-central1-a 与 us-central1-f:

挂墙时间 -- 1 小时 21 分钟与 1 小时 58 分钟

总 vCPU -- 1129.907 vs 1727.49 vCPU hr

(请看附图)

这些作业在 GCS 存储桶(多区域)中读取完全相同的输入,并使用相同的代码对其进行处理。但是区域“us-central1-a”始终比“us-central1-f”具有更好的性能。有谁知道它们之间有什么区别?有没有关于如何选择区域的说明?

提前致谢!

us-central1-a:

us-central1-f:

【问题讨论】:

    标签: google-compute-engine google-cloud-dataflow apache-beam dataflow


    【解决方案1】:

    要覆盖该区域,请参阅:https://cloud.google.com/dataflow/docs/concepts/regional-endpoints#workeroverride

    关于不同区域的性能,每个区域的规格可以在GCE的documentation中找到。我的猜测是这 2 个区域可能具有不同的默认 CPU 平台。

    例如,如果您在 us-central1-a 区域中创建实例,则您的实例默认使用 Haswell 处理器,除非您指定其他选项。

    您可能需要仔细检查这 2 个作业是否具有相同的指标和特征,即 us-central1-f 的减速是一致的,而不是由作业或其依赖系统的任何故障引起的。此外,您可以咨询 GCE 专家,了解不同区域是否提供不同的性能。而且由于该区域是自动选择的,因此可能是当时 us-central1-a 的区域/区域太忙了,如果在那里执行,您在 us-central1-a 上的性能可能相似或更差。

    【讨论】:

    • 非常感谢您的回答!我们实际上在两个指定区域多次运行相同的工作,结果非常一致,因此不太可能是由打嗝引起的。我认为您在 CPU 平台上的观点是有道理的,您知道我们如何联系 GCE 专家吗?有没有一种方法可以让用户检查一个区域的繁忙程度?
    • 我认为最终用户看不到每个区域/区域的基本状态。您可以在问题中添加“google-compute-engine”标签,看看是否有人可以回答性能差异问题。
    • 知道了,谢谢!
    猜你喜欢
    • 1970-01-01
    • 2013-08-31
    • 1970-01-01
    • 1970-01-01
    • 2017-09-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-07-13
    相关资源
    最近更新 更多