执行详情

Dataflow 在其基于 Web 的监控界面中提供了执行详情标签页。此工具可帮助您优化作业性能,并诊断作业运行缓慢或卡滞的原因。本文档适用于需要检查其 Dataflow 作业的执行详情的任何 Dataflow 用户。

本页面简要介绍了执行详情功能及其界面布局。如需了解问题排查详情,请参阅使用“执行详情”标签页

术语

为了有效使用执行详情,您需要了解以下关键概念如何应用于 Dataflow 作业:

Dataflow 术语

  • 融合优化:Dataflow 融合多个步骤或多项转换的过程。这样可以优化由用户提交的流水线。如需了解详情,请参阅 Fusion 优化
  • 阶段:Dataflow 流水线中融合步骤的单元。
  • 最后阶段:Dataflow 流水线中的最后一个节点。一个流水线可以有多个最终节点。

批量术语

  • 关键路径:影响整个作业运行时的流水线的阶段序列。例如,此序列不包括以下阶段:
    • 在整个作业完成之前就已经完成的流水线分支。
    • 不会造成下游处理延迟的输入。
  • 工作器:运行 Dataflow 作业的 Compute Engine 虚拟机实例。
  • 工作项:与 Dataflow 选择的软件包对应的工作单元。

流式术语

何时使用执行详情

下面是运行 Dataflow 作业时应该使用执行详情的常见场景:

  • 您的流水线卡滞,并且您希望排查问题。
  • 您的流水线速度缓慢,您想要有针对性地优化流水线。
  • 您不需要修复任何问题,但您希望查看流水线的执行详情以了解作业。

启用执行详情

系统会自动为所有批量作业和流式作业启用阶段工作流视图。批量作业和流式作业还具有阶段进度视图,并且批量作业额外还有一个工作器进度视图。

此功能不会额外增加您的虚拟机的 CPU、网络等资源的用量。执行详情由 Dataflow 的后端监控系统收集,因此不会会影响到作业的性能。

启动作业后,您可以使用 Dataflow 监控界面查看执行详情标签页。如需了解详情,请参阅访问 Dataflow 监控界面

使用“执行详情”标签页

执行详情标签页包含四个视图:阶段进度阶段信息面板(位于阶段进度内)、阶段工作流工作器进度。本部分将逐步介绍每个视图,并提供成功和失败的 Dataflow 作业示例。

批量作业的阶段进度

批量作业的阶段进度视图显示作业的执行阶段(按作业开始时间和结束时间排列)。该时长通过条形表示。例如,您可以通过观察最长的条形来直观地辨别流水线中最长的运行阶段。

在每个条形下方,您可以看到一个显示阶段进展情况的迷你图。要突出显示影响作业整体运行时的阶段,请点击关键路径切换开关。 此外,您可以使用“过滤阶段”下拉列表,仅选择您感兴趣的阶段。

批量作业的阶段进度视图示例,直观呈现了六个不同执行阶段的时长。

流式作业的阶段进度

流式作业的阶段进度视图可分为两个部分。视图的上半部分显示了一个图表,表示作业的每个执行阶段的数据新鲜度。将鼠标悬停在图表上,即可提供该特定时刻的数据新鲜度值。视图的下半部分显示作业的执行阶段,按拓扑顺序排列,其中没有后代阶段的阶段显示在顶部,其后代列在下方。此视图可以更轻松地识别流水线的阶段,这些阶段花费的时间比应有的时间长。这些栏的大小是相对于整个时域最长的数据新鲜度调整大小的。

流式作业在取消、排空或更新之前一直运行。图表上方的时间选择器可用于将时域限定为更有用的时间范围。此外,您可以使用“过滤阶段”下拉列表,仅选择您感兴趣的阶段。

阶段进度视图可让您通过以下两个不同方式更轻松地识别流式作业缓慢或卡住的时间:

  1. “数据新鲜度(按阶段)”图表包含异常检测,自动显示数据新鲜度看起来健康状况不佳的时间窗口。当数据新鲜度超过选定时间窗口的第 99 百分位时,该图表会突出显示“潜在的卡顿”。同样,当数据新鲜度超过第 95 百分位时,该图表会突出显示“潜在的缓慢”。
  2. 您可以通过先将鼠标悬停在图表中看起来异常的时间上来检测其瓶颈。悬停后,条形越长表示阶段越缓慢。或者,您也可以点击图表的 x 轴来显示这段时间的数据。查找导致卡滞/缓慢的阶段的常见方法是查找导致数据新鲜度处于峰值的最上游(最顶层)或最下游(最低层)阶段。此方法并不适用于所有使用场景,并且可能需要进一步调试才能确定确切原因。

流式作业的阶段进度视图示例,直观呈现了一个执行阶段的时长以及可能的缓慢异常情况。

阶段信息面板

阶段信息面板显示与融合阶段相关联的步骤列表,并按实际用时降序排列。该面板在屏幕右侧打开。如需打开该面板,请将鼠标悬停在阶段进度视图中的其中一列上,然后点击查看详细信息

阶段信息面板示例

阶段工作流

阶段工作流显示作业的执行阶段(以工作流图表示)。如需仅显示对作业整体运行时产生直接影响的阶段,请点击关键路径切换开关。

“阶段”工作流示例,显示了作业的不同执行阶段的层次结构。

工作器进度

对于批量作业,工作器进度显示特定阶段的工作器。此视图不适用于流式作业。

每个条形均映射到一个调度到工作器的工作项。跟踪工作器上 CPU 利用率的火花谱线图位于每个工作器的下方,便于您更轻松地发现利用率过低的问题。

由于此直观图表的密度,您必须预先选择一个阶段来过滤此视图。首先,在阶段进度视图中确定一个阶段。将鼠标悬停在该阶段上,然后点击查看工作器以进入工作器进度视图。

工作器进度视图示例。工作器具有指示工作项调度和 CPU 利用率的条形图和迷你图。

后续步骤