文档首页> AI开发平台ModelArts> 模型训练> 完成一次训练> Cloud Shell> 通过py-spy工具分析卡死进程的调用栈并结合代码分析定位卡死问题
更新时间:2024-05-06 GMT+08:00

通过py-spy工具分析卡死进程的调用栈并结合代码分析定位卡死问题

使用场景

本文指导用户通过py-spy工具分析卡死进程的调用栈并结合代码分析定位卡死问题。

操作步骤

  1. 在ModelArts控制台,选择“训练管理>训练作业”。
  2. 在训练作业详情页面,选择Cloud Shell页签,登录训练容器(训练作业需处于运行中)。
  3. 安装py-spy工具。

    # 通过utils.sh脚本自动配置python环境
    source /home/ma-user/modelarts/run/utils.sh
    
    # 安装py-spy
    pip install py-spy
    
    # 如果超时提示connection broken by 'ProxyError('Cannot connect to proxy.')则表示用户设置了proxy,需要先关掉
    export no_proxy=$no_proxy,repo.myhuaweicloud.com(此处需要替换成对应局点的pip源地址)
    pip install py-spy

  4. 查看堆栈。py-spy工具的具体使用方法可参考py-spy官方文档

    # 找到训练进程的PID
    ps -ef
    
    # 查看进程12345的进程堆栈
    # 如果是8卡的训练作业,一般用此命令依次去查看主进程起的对应的8个进程的堆栈情况
    py-spy dump --pid 12345