昇腾社区首页
中文
注册
开发者
下载

业务复跑+故障信息收集

  • 功能说明

    复跑业务后再收集故障信息,例如软硬件信息、日志等。

  • 产品支持情况

    产品

    是否支持

    Atlas A3 训练系列产品/Atlas A3 推理系列产品

    Atlas A2 训练系列产品/Atlas A2 推理系列产品

    Atlas 200I/500 A2 推理产品

    Atlas 推理系列产品

    Atlas 训练系列产品

  • 注意事项
    • 业务复跑默认开启算子编译文件、GE dump图和TF Adapter dump图收集功能。
    • asys launch命令执行时会自动开启NPU_COLLECT_PATH、ASCEND_PROCESS_LOG_PATH、ASCEND_HOST_LOG_FILE_NUM、ASCEND_WORK_PATH环境变量临时存放收集到的信息,asys launch命令执行结束时会自动关闭这些环境变量,若用户在执行asys launch命令前手动设置了这些环境变量,则用户设置的这部分环境变量会被覆盖、不生效;若复跑的用户任务脚本中涉及NPU_COLLECT_PATH、ASCEND_PROCESS_LOG_PATH、ASCEND_HOST_LOG_FILE_NUM、ASCEND_WORK_PATH这些环境变量,则可能导致asys工具设置的环境变量被覆盖、不生效,进而导致无法收集对应的信息。各环境变量的详细说明及约束,请参见环境变量参考
    • asys launch命令会拉起子进程执行业务命令,若用户主动终止launch命令,业务子进程可能未退出,这时需要用户自行终止业务子进程。
  • 命令格式
    asys launch --task="sh ../app_run.sh" --tar="True" --output=path
  • 参数说明
    • task:必选参数,为复跑业务的执行命令,需要填写完整的命令,例如"sh ../app_run.sh",sh为执行任务的命令,../app_run.sh为要执行的任务脚本。

      不支持原有执行脚本内部直接后台执行的方式。例如:原有用例通过命令行执行sh cmd.sh来拉起用例,而cmd.sh的实现里执行python3 test.py &,用后台的方式执行,此种任务由于无法感知结束点,暂不支持使用。

    • tar:可选参数,是否将asys工具的结果输出目录压缩为*.tar.gz文件,默认不压缩,该参数值为T或True时,压缩为*.tar.gz文件且不保留原目录;参数值为F或False时,不压缩为*.tar.gz文件。参数值不区分大小写。
    • output:可选参数,其值作为asys工具的结果输出目录的路径前缀,即最终输出目录为{output}/asys_output_timestamp。命令行中不带output参数时,输出结果存放在命令行执行目录下;若output指定值为空、无效字符串、或指定路径目录无写权限、或创建目录失败,则asys工具退出执行并报错。
  • 使用示例
    1. (可选)修改业务复跑相关的配置项,如果不修改,则采用默认配置。

      默认配置如下,可通过修改asys工具目录下的“ascend_system_advisor/conf/asys.ini”文件中的参数,从而打开或关闭开启算子编译文件和dump图收集等功能:

      [launch]
      graph = TRUE                    // 控制是否收集Graph图信息,取值范围:TRUE收集、FALSE不收集,若设置为FALSE,则dump_ge_graph、dump_graph_level配置不生效
      ops = TRUE                      // 控制是否收集算子编译信息,取值范围:TRUE收集、FALSE不收集
      dump_ge_graph = 2               // 控制dump图的内容多少,取值为2,不含有权重等数据的基础版dump,对应环境变量DUMP_GE_GRAPH
      dump_graph_level = 3            // 控制dump图的数量,取值为3,dump最后阶段的生成图,对应环境变量DUMP_GRAPH_LEVEL
      log_level = INFO                // 应用类日志的全局日志级别及各模块日志级别,对应环境变量ASCEND_GLOBAL_LOG_LEVEL
      log_event_enable = TRUE         // 应用类日志是否开启Event日志,取值范围:TRUE开启、FALSE不开启,对应环境变量ASCEND_GLOBAL_EVENT_ENABLE
      log_print_to_stdout = FALSE     // 是否开启在终端屏幕打印日志,取值范围:TRUE开启、FALSE不开启,对应环境变量ASCEND_SLOG_PRINT_TO_STDOUT

      asys工具启动时,环境变量默认使用该文件里的配置值,但如果复跑任务脚本中将这些环境变量配置为其它值,则会发生环境变量覆盖,以复跑任务脚本中设置的值为准。因此,可能造成收集到的维测信息不满足定位需求。

    2. 执行业务复跑+故障信息收集命令。
      asys launch --task="sh ../run.sh" --tar="True" --output=$HOME/dfx_info
  • 输出说明

    执行完命令后,在{output}/asys_output_timestamp路径下的故障信息文件目录如下所示:

    ├── asys_output_timestamp         
       ├── software_info.txt            // 安装包版本、环境变量、依赖软件、系统信息
       ├── hardware_info.txt            // 收集了host和device侧硬件信息,host信息包括内核版本信息、CPU型号、内存和硬盘使用情况等, device信息包括设备个数、aicpu个数等
       ├── status_info.txt              // 收集device的信息,包含芯片型号、CPU和AI Core利用率等
       ├── health_result.txt            // 收集device健康信息,包括故障码和故障信息
       └── dfx              
           ├── bbox                     // Device侧的黑匣子信息       
           ├── data-dump                // 发生Aicore err时,生成的dump文件
           ├── graph                    // dump图信息,包含GE与TF Adapter的dump图
           ├── ops                      // 算子编译信息,包括算子编译*.o和*.json文件、算子编译过程信息、自定义算子配置信息等 
           ├── stackcore                // 报错触发coredump时的core文件信息
           ├── atrace                   // trace落盘信息,包括trace二进制文件解析的明文文件
           └── log          
               ├── device       
               │     ├──dev-os-{id}
               │           ├── firmware      // 固件生成的日志
               │           ├── slogd         // 日志相关进程的维测日志
               │           ├── application   // 业务进程产生的非EVENT级别应用日志
               │           └── system        // 常驻进程生成的日志
               └── host     
                    ├── message         // message/syslog日志
                    ├── install         // 包历史安装情况的日志
                    ├── cann            // 应用类日志
                    ├── driver          // Host侧驱动日志
                    ├── screen.txt      // 打印到终端屏幕的日志(如果内容为空,则可能应用任务中设置了重定向。)
                    └── user_cmd        // 用户执行任务的命令

    其中,用户可根据需求自行定义software_info.txt文件中收集的第三方依赖软件的版本信息。在asys工具目录下的“ascend_system_advisor/conf/dependent_package.csv”文件中,增加或删除配置项,每行对应一个配置项,逗号分割依赖项名字和查询指令,逗号后无空格。示例片段如下:

    make,make --version
    cmake,cmake --version
    unzip,unzip -v
    zlib1g,dpkg -l zlib1g| grep zlib1g| grep ii
    zlib1g-dev,dpkg -l zlib1g-dev| grep zlib1g-dev| grep ii
    libsqlite3-dev,dpkg -l libsqlite3-dev| grep libsqlite3-dev| grep ii
    openssl,dpkg -l openssl| grep openssl| grep ii
    libssl-dev,dpkg -l libssl-dev| grep libssl-dev| grep ii
    libffi-dev,dpkg -l libffi-dev| grep libffi-dev| grep ii