在 Java Beam SDK 中从 Dataflow Runner v1 切换到 v2 时出现性能问题和工作线程崩溃

问题描述 投票:0回答:1

我一直在使用 Dataflow Runner v1 和 Java Beam SDK 运行数据管道,没有任何问题。最近,我们尝试将管道迁移到 Runner v2,但遇到了以下问题:

  • Worker 崩溃:我们观察到 Worker CPU 使用率突然下降到 0%,然后 VM 挂掉。
  • 更高的资源使用率:与 Runner v1 相比,相同的管道在 Runner v2 上运行时消耗的资源(CPU 和内存)明显更多。

我附上了两张图片,显示了 Runner v1 和 Runner v2 下同一管道的资源使用情况,以供参考。

跑步者 v1: Runner v1

跑步者 v2: Runner v2

两条管道并行运行并处理相同的流量

我们尝试过:

  • 检查日志中是否有任何相关错误或警告——没有发现任何问题。

  • 监控各种指标,但我们没有发现任何有用的信息来解释性能差异。 问题:

  • 这是 Dataflow Runner v2 的已知问题吗?

  • 是否存在任何已知的不兼容性或特定功能无法与 Java Beam SDK 中的 Runner v2 配合良好?

  • 从 Runner v1 迁移到 v2 时,我们应该采取哪些优化建议或额外步骤?

  • 任何指导或故障排除提示将不胜感激!

java google-cloud-dataflow apache-beam
1个回答
0
投票

如果这是为了流媒体,我建议不要故意升级到runner v2;一般来说,对于流作业,Dataflow 默认为 v1,因为预计大多数不使用 v2 功能的作业在流上下文中会具有更高的性能(截至目前)。

如果是批量,我建议向Dataflow客户支持(https://cloud.google.com/dataflow/docs/support/getting-support)开一张票来看看,这可能会很有挑战性在无法更仔细地审视相关工作的情况下提供很多帮助。

© www.soinside.com 2019 - 2024. All rights reserved.