使用分析来调试管道性能问题

Azure 机器学习工作室中的分析功能可帮助你调试挂起或持续时间太长等管道性能问题。 分析功能会列出每个管道步骤的持续时间并提供可视化的甘特图。 你可以查看每种作业状态所花费的时间,并快速找到耗时超出预期的步骤。

查找总运行时间最长的节点

  1. 在 Azure 机器学习工作室的“作业”页面上,选择作业名称打开作业详细信息页面

  2. 在操作栏中,选择“查看分析”。 分析仅适用于根管道。 分析器页面可能需要几分钟才能加载。

    显示根级别的管道的屏幕截图,其中突出显示了“查看分析”按钮。

若要确定耗时最长的步骤,请查看分析器页面顶部的甘特图。 甘特图中每个条形的长度显示该步骤花费的时间。 条形长度最长的步骤花费的时间最多。

显示甘特图和关键路径的屏幕截图。

甘特图包含以下视图:

  • “关键路径”是确定作业总持续时间的步骤序列。 默认会显示此视图。 只有具有依赖项的步骤作业才会显示在管道的关键路径中。
  • “平展视图”显示所有步骤作业,并显示比关键路径更多的节点
  • “紧凑视图”仅显示耗时超过 30 秒的步骤作业
  • “分层视图”显示所有作业,包括管道组件作业和步骤作业

还可以使用分析器页面底部的表来确定持续时间。 选择表中的某行时,会在甘特图中突出显示相应的节点,反之亦然。

  • 在表中,可以按“总持续时间”列排序,以查找运行时间最长的节点

  • 选择表中节点名称旁边的“查看详细信息”图标会打开节点详细信息窗格,其中显示了参数、输入和输出、命令代码、日志和其他信息

    突出显示日志图标并显示详细信息页的屏幕截图。

  • 若要导出持续时间表,请选择分析器页面右上角的“导出 CSV”

    显示分析中的“导出 CSV”的屏幕截图。

查找每种状态下运行时间最长的节点

除了总持续时间之外,你还可以按照每种状态的持续时间对持续时间表进行排序。 例如,可以按“正在准备”列进行排序,以查看哪个步骤在映像生成方面花费的时间最多。 可以打开该步骤的详细信息窗格来查看映像生成是否因超时问题而失败。

解决状态持续时间问题

下表列出了每种作业状态的定义、其估计花费时间,以及解决该状态问题的建议。

Status 定义 时间估计 后续步骤
未开始 作业从客户端提交并在 Azure 机器学习服务中被接受。 大部分时间花费在服务计划和预处理上。 如果没有后端服务问题,则此时间应该较短。 通过 Azure 门户创建支持案例。
备餐中 在此状态下,作业正在等待作业依赖项的准备,例如环境映像生成。 如果使用策划或注册的自定义环境,则此时间应该较短。 检查映像生成日志。
排队 作业正在等待计算资源分配。 此阶段的持续时间主要取决于计算群集的状态。 如果使用具有足够计算资源的群集,则此时间应该很短。 增加目标计算的最大节点数,将作业更改为另一个不太繁忙的计算,或修改作业优先级以获取更多计算资源。
运行 作业正在远程计算上执行。 此阶段包括:
1.运行时准备,例如映像拉取、docker 启动、数据装载或下载。 2. 用户脚本执行。
此状态预计是最耗时的。 1.检查源代码是否存在任何用户错误。
2.查看 CPU、内存和网络等计算指标的监视选项卡,以识别任何瓶颈。
3.如果作业正在运行,请尝试使用交互式终结点进行联机调试,或在本地调试代码。
正在完成 作业在执行完成后处于后处理状态。 此阶段所花费的时间主要用于上传输出、上传指标和日志以及清理资源等后处理工作。 对于命令作业,此时间预计较短。 对于复合风险评分 (PRS) 或消息传递接口 (MPI) 作业,持续时间可能较长,因为对于分布式作业,持续时间从第一个节点开始,到最后一个节点结束。 如果发现完成时间意外过长,或者要通过 Azure 门户创建支持案例,请将步骤作业输出模式从上传更改为装载。