You need to enable JavaScript to run this app.
导航
Py-spy 采集分析
最近更新时间:2025.04.22 18:12:19首次发布时间:2025.04.22 18:12:19
我的收藏
有用
有用
无用
无用

py-spy 是一个高性能的 Python 程序分析工具,它能够在不修改代码、不重启应用的情况下,实时采样 Python 进程的执行状态,帮助开发者快速定位性能瓶颈。

开启py-spy 采集

当用户在创建自定义任务,选择开启「任务 Hang 检测」时,则自动打开py-spy 采集功能。用户可以在开启「Hang 检测」的任务中随时点击「Hang 解析」tab 页面下的「采集数据」功能,触发进程采集。平台则默认每 10 分钟触发一次采集。采集只会增加存储用量,不会带来额外性能开销。

说明

仅当任务为运行中或失败(保留中)时可以触发「采集数据」操作。

采集过程中将花费数秒至数十秒,当采集完成后,您可在页面查看到当次采集生成的采集报告。根据筛选的聚合方式,可以查看全部/不同线程的调用栈 Trace 数据。调用栈是线程级别的执行跟踪机制,可以记录函数调用关系。

平台根据不同 GPU 上执行的调用栈信息,做了聚类和分类。每个 Group 对应一组执行当前相同调用栈的 GPU。点击 Ranks 前的数量,可以查看所有 Rank 对应的所有节点信息,即跳转到「概览信息」,筛选对应 Rank 所在的实例列表。您可进一步通过WebIDE/WebShell 登录分析。或者根据监控以及日志信息进行排查。

点击「在拓扑中高亮所有 Rank」,则会看到右侧节点拓扑中执行该调用栈的 GPUs(Ranks)。您也可以直接在右侧节点拓扑中查看每个 Rank 上的调用栈信息。此外,不同 Group 通过不同颜色进行了区分,方便您快速定位相同调用栈的 GPUs(Ranks)范围。

如何判断py-spy采集数据是否异常

当任务 Hang 住时,您可看到右侧拓扑中会出现大面积相同颜色的色块,即大面积的 GPUs(Ranks)都在执行相同调用栈,则此时可能出现了当前Group对应的 GPUs(Ranks)范围内某一些 GPU 的调用栈 hang 住,导致其他 Ranks 无法继续执行。具体可点击查看当前调用栈程序执行调用的函数进行深入分析及判断。