---
title: 业务复跑+故障信息收集
description: "复跑业务后再收集故障信息，例如软硬件信息、日志等。"
url: https://www.hiascend.com/document/detail/zh/canncommercial/latest/maintenref/troubleshooting/troubleshooting_0502.html
sourcePath: /source/zh/canncommercial/900/maintenref/troubleshooting/troubleshooting_0502.html
indexId: 17312e20d6a2f0e7eddf2a484ccf4f2283eea679c7ad2c4dc94cdf7f5130f7f082
---
# 业务复跑+故障信息收集

#### 功能说明

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


#### 产品支持情况

| 产品 | 是否支持 |
| --- | --- |
| Atlas 350 加速卡 | √ |
| 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工具设置的环境变量被覆盖、不生效，进而导致无法收集对应的信息。各环境变量的详细说明及约束，请参见《环境变量参考(https://www.hiascend.com/document/detail/zh/canncommercial/900/maintenref/envvar/envref_07_0001.html)》。
- 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/asys/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
```
