实时堆栈导出
- 功能说明
该功能适用于业务进程卡住场景,以便导出堆栈信息定位问题。在业务未卡死时,执行实时堆栈导出,可能有:信号发送失败、bin文件生成超时、bin文件解析失败等异常,无法正常导出堆栈信息。另外,不支持对同一个卡住进程并行导出堆栈信息,否则可能执行命令失败。
- 产品支持情况
产品
是否支持
Atlas A3 训练系列产品 /Atlas A3 推理系列产品 √
Atlas A2 训练系列产品 /Atlas A2 推理系列产品 √
Atlas 200I/500 A2 推理产品 √
Atlas 推理系列产品 √
Atlas 训练系列产品 √
- 注意事项
导出实时堆栈信息时,asys工具会检索trace日志所在的目录,若trace日志文件过多,可能会导致asys工具执行时间长,因此建议先清理trace日志(trace日志默认存放路径为$HOME/ascend/atrace/),再执行asys工具导出实时堆栈信息。关于trace日志的详细介绍请参见《日志参考》中的“查看trace日志”。
- 命令格式
asys collect -r=stacktrace --remote=pid --all --quiet
- 参数说明
- r : 必选参数,此处设置为stacktrace,用于实时导出堆栈信息,供后续定位使用。若不设置本参数,则表示执行故障信息收集功能,但此时不能与--remote、--all、--quiet参数混用。
命令执行成功后,根据终端屏幕提示获取导出的文件。
- remote:指定卡住进程的进程ID,在-r=stacktrace时必选。ID取值要求大于或等于2,若此处传入的进程ID不存在,asys命令报错退出。
- all:设置该参数表示导出卡住进程中所有线程的堆栈信息,在-r=stacktrace时必选。
- quiet:可选参数,导出堆栈信息过程中,设置该参数关闭与用户交互的开关,不设置该参数则默认开启交互,需用户确认当前服务器上是否打开trace处理的信号集(将ASCEND_COREDUMP_SIGNAL设置为非none的其他值,或未设置该环境变量)。在-r=stacktrace时可选择使用本参数。
由于导出实时堆栈信息时,需要向指定进程发送信号35,如果关闭trace处理的信号集,则会终止卡住进程,无法导出堆栈信息。
- r : 必选参数,此处设置为stacktrace,用于实时导出堆栈信息,供后续定位使用。若不设置本参数,则表示执行故障信息收集功能,但此时不能与--remote、--all、--quiet参数混用。
- 使用示例
asys collect -r=stacktrace --remote=468625 --all --quiet
- 输出说明
2025-04-01 02:59:10,344 [ASYS] [INFO]: asys start. 2025-04-01 02:59:10,370 [ASYS] [WARNING]: This command sends signal 35 to the process:468625. If the process is executed to disable signal receiving through the environment variable ASCEND_COREDUMP_SIGNAL=none, the process:468625 will be killed. Are you sure that signal reception is not disabled? (Y/N) 2025-04-01 02:59:11,151 [ASYS] [INFO]: stackcore file path: /home/test/atrace/trace_468625_468625_20250401025858603877/stackcore_event_468625_20250401025910399626/stackcore_tracer_35_468625_atrace_test_20250401025910399934.txt 2025-04-01 02:59:11,151 [ASYS] [INFO]: collect task execute finish. 2025-04-01 02:59:11,151 [ASYS] [INFO]: asys finish.
父主题: asys工具使用指导