cann/oam-tools动态采集
动态采集性能数据【免费下载链接】oam-tools本项目为开发者提供故障定位工具包含故障信息收集软硬件信息展示AI core error报错分析等能力提升故障问题定位效率文档可在昇腾社区搜索“故障处理简介”选择社区版。项目地址: https://gitcode.com/cann/oam-tools功能说明在执行采集的过程中可以随时启动和停止采集进程。动态采集性能数据支持通过launch和attach两种方式执行launch方式msprof命令行启动动态采集时同步调起AI任务并进入性能数据采集交互模式可以通过命令随时启动和停止采集。若使用msprof --application命令拉起的进程即为实际用卡的业务进程例如msprof --applicationmain --dynamiconmain即为实际业务进程程序推荐使用该方式。attach方式用户先自行启动AI任务再启动msprof动态采集并进入性能数据采集交互模式可以通过命令随时启动和停止采集。若通过launch方式使用msprof --application命令拉起的进程并非实际用卡的业务进程例如msprof --applicationrun.sh --dynamiconrun.sh在脚本内部才会拉起实际的业务进程则推荐改用attach方式。注意事项在launch方式下传入的用户程序中不能设置环境变量“PROFILING_MODE”和“PROFILING_OPTIONS”。在attach方式下需先设置环境变量“PROFILING_MODE”为dynamic然后启动AI任务最后执行命令行操作。export PROFILING_MODEdynamic在同一AI任务中同一时间仅允许一个用户进入交互模式。进入交互模式后若未启动数据采集30分钟后将自动退出执行命令可重新进入交互模式。多卡含集群场景下推荐使用attach方式进行动态性能数据采集。本功能不支持与延迟采集性能数据--delay和--duration参数同时配置。如果用户进程被设置为后台执行将导致launch方式失效从而无法进入交互界面此时建议使用attach方式动态采集性能数据。如果在容器中启动业务进程则也需要在容器中执行msprof采集命令。命令格式launch方式msprof --dynamicon [options] app --applicationappattach方式msprof --dynamicon [options]launch方式必须传入用户程序app参数说明请参见app参数说明options参数说明请参见表1同时可叠加其他采集项例如采集AI任务运行性能数据或采集AI处理器系统数据中的参数。参数说明表1options参数说明|参数|可选/必选|描述| |--|--|--| |--dynamic|必选|控制动态采集性能数据的开关可选on或off默认值为off。| |--pid|attach方式必选launch方式该参数不选|指定需要采集的应用程序的PID。可同时配置一个或多个PID配置示例--pid 1,2,3。获取PID的方法可参考获取AI任务PID也可执行如下命令获取当前环境可以采集的所有PIDls ~/dynamic_profiling_socket_* 2/dev/null \| awk -F _ {print $4} \| paste -sd , -| |--output|可选|指定性能数据的存放路径。默认未配置该参数表示将性能数据保存在当前路径。路径中不能包含特殊字符。| |start|可选|启动采集。- start 、stop命令执行次数上限为100两条命令执行次数总和超过100次后服务端将终止连接即最多采集50份性能数据。重新连接服务端时重新计算次数。- 反复执行start 、stop命令时可能因stop结束Profiling流程而终止了CANN组件的数据上报因此打印ERROR日志为正常现象。| |stop|可选|停止采集。每完成一次start和stop命令在--output参数指定路径下生成一个存放数据文件的PROF*_*XXX目录。| |quit|可选|停止采集并退出交互模式。quit之后AI任务正常运行再次执行msprof动态Profiling命令可再次进入交互模式并启动态Profiler采集。|--output表示的路径中不能包含的特殊字符如下\n, \\n, \f, \\f, \r, \\r, \b, \\b, \t, \\t, \v, \\v, \u007F, \\u007F, \, \\\, , \, \\, \\\\, %, \\%, , \\, , \\, |, \\|, , \\, $, \\$, ;, \\;, , \\使用示例launch方式msprof --dynamicon --output/home/projects/output --runtime-apion /home/projects/MyApp/out/main (msprof) start ... (msprof) stop ... (msprof) quit ...动态采集性能数据必须传入用户程序。attach方式msprof --dynamicon --pidpid --output/home/projects/output (msprof) start ... (msprof) stop ... (msprof) quit ...输出说明在--output指定的目录下生成PROF_XXX目录建议使用解析命令进行性能数据的解析和导出。动态采集时若配置多个PID则每个PID进程会在--output指定的目录下生成自己的PROF_XXX目录此时建议在解析时将--output指定为PROF__XXX的父目录以便同时解析多份PROF__XXX目录。获取AI任务PID可先执行如下命令查看当前环境可以采集的PID之后再根据下列操作获取具体需要采集的PID。ls ~/dynamic_profiling_socket_* 2/dev/null | awk -F _ {print $4} | paste -sd , -AI任务在物理机环境直接运行在该环境下执行如下命令查看AI任务的PID。npu-smi info打印结果如下Process id字段即为该AI任务的PID。---------------------------------------------------------------------------------------------- | NPU Chip | Process id | Process name | Process memory(MB) | | 0 0 | 830236 | python3 | 58 | AI任务在特权容器中运行该场景下动态采集操作的--pid参数需要指定的PID为AI任务在特权容器中运行的PID。需要通过如下步骤来查看该AI任务在特权容器中运行的PID。执行如下命令查看该AI任务运行时在宿主机中对应的PID。npu-smi info[!NOTE]说明 无论在特权容器中还是在特权容器的宿主机中npu-smi info命令都只能显示该AI任务运行时在宿主机中对应的PID。打印结果如下Process id字段即为该AI任务运行时在宿主机中对应的PID此处以PID为837666为例。---------------------------------------------------------------------------------------------- | NPU Chip | Process id | Process name | Process memory(MB) | | 0 0 | 837666 | | 58 | 在宿主机视图下执行如下命令查看该AI任务在宿主机中与在特权容器中PID的映射关系。cat /proc/837666/status | grep NSpid打印结果如下。NSpid: 837666 849此处的849即为该AI任务在特权容器中运行的PID动态采集操作的--pid参数需要指定的PID为849。AI任务在非特权容器中运行方式一直接在非特权容器视图下执行如下命令查看该AI任务在非特权容器中运行的PID。npu-smi info打印结果如下Process id字段即为该AI任务在非特权容器中运行的PID。---------------------------------------------------------------------------------------------- | NPU Chip | Process id | Process name | Process memory(MB) | | 0 0 | 849 | | 58 | 方式二在非特权容器的宿主机视图下执行如下命令查看该AI任务运行时在宿主机中对应的PID。npu-smi info打印结果如下Process id字段即为该AI任务运行时在宿主机中对应的PID此处以PID为837666为例。---------------------------------------------------------------------------------------------- | NPU Chip | Process id | Process name | Process memory(MB) | | 0 0 | 837666 | | 58 | 在宿主机视图下执行如下命令查看该AI任务在宿主机中与在特权容器中PID的映射关系。cat /proc/837666/status | grep NSpid打印结果如下。NSpid: 837666 849此处的849即为该AI任务在特权容器中运行的PID动态采集操作的--pid参数需要指定的PID为849。[!NOTE]说明 多Device场景下建议每个Device逐一运行AI任务并逐一按照上述方式获取PID若多Device同时运行AI任务则获取任意一个PID进行采集当前暂不支持同时指定多PID进行动态采集。【免费下载链接】oam-tools本项目为开发者提供故障定位工具包含故障信息收集软硬件信息展示AI core error报错分析等能力提升故障问题定位效率文档可在昇腾社区搜索“故障处理简介”选择社区版。项目地址: https://gitcode.com/cann/oam-tools创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考