拓冰建站拓冰建站
首页 / 资讯中心 / 正文

CANN oam-tools msprof 延迟采集性能数据(--delay / --duration)实战指南

CANN oam-tools msprof 延迟采集性能数据--delay / --duration实战指南【免费下载链接】oam-tools本项目为开发者提供故障定位工具包含故障信息收集软硬件信息展示AI core error报错分析等能力提升故障问题定位效率文档可在昇腾社区搜索“故障处理简介”选择社区版。项目地址: https://gitcode.com/cann/oam-tools导读本文围绕 CANN oam-tools 中 msprof 工具的延迟采集性能数据能力展开讲解如何通过--delay与--duration两个参数按计划延迟启动性能数据采集、并限定采集持续时间从而精准覆盖 AI 任务运行的关键阶段。读完本文你将掌握延迟采集的命令格式、参数取值范围与默认值、与动态采集--dynamic的互斥约束以及底层参数解析与采集调度机制的源码级原理可直接复现于实际故障定位与性能分析场景。功能说明为什么需要延迟采集在 AI 训练/推理任务的性能分析中任务往往存在明显的启动预热阶段与稳定运行阶段。若从任务启动那一刻就开始全量采集性能数据会产生大量与问题定位无关的早期数据既浪费存储与磁盘 IO也增加后续解析开销。msprof 的延迟采集能力正是为解决这一问题而设计用户可以通过设置--delay和--duration两个参数配置数据采集的延迟启动时间与采集持续时间让 Profiling 在任务运行到目标阶段时才开始并在设定时长后自动停止。从 oam-tools 源码看该能力与动态采集共用同一套参数通道且两者互斥。延迟采集场景下不支持动态采集性能数据即不能同时配置--dynamic参数详见下文与动态采集的互斥关系。命令格式与适用前提以运行用户登录工具所在环境执行以下命令采集性能数据msprof [options] app延迟采集有两条硬性前提缺一不可仅当采集 AI 任务运行性能数据时支持启用延迟采集能力即使用场景限定为对用户程序app进行 Profiling 采集必须传入用户程序路径。必须传入用户程序且--delay/--duration与--dynamic参数不能同时配置。app 参数说明请参见 app 参数说明options 参数说明请参见下表同时可叠加 采集 AI 任务运行性能数据 中的参数如--runtime-apion、--task-timeon等组成完整的采集方案。参数说明表1options 参数说明参数可选/必选描述--delay可选按设定时间延迟采集性能数据范围 [1, 4294967295]单位 s默认值 0。若配置的时间超过了 AI 任务的执行时间在 AI 任务执行期间不会启动采集。--duration可选性能数据采集的持续时间范围 [1, 4294967295]单位 s默认未配置即随采集开始持续到任务结束自动停止采集。若配置了--delay参数则 duration 从 delay 结束的时刻开始计时。两个参数的关键语义要点--delay决定何时开始从采集进程启动即 msprof 拉起 AI 任务开始计时达到设定的秒数后才真正启动数据采集。若 delay 值大于 AI 任务总执行时间则整个任务执行期间都不会启动采集任务结束后采集自然终止不会产生数据。--duration决定持续多久从采集启动时刻即 delay 结束的时刻开始计时达到设定秒数后自动停止采集。默认未配置时采集将一直持续到 AI 任务结束。两者的时间基准不同delay 以msprof 启动时刻为基准duration 以采集实际启动时刻delay 结束时刻为基准两者共同构成[delay, delayduration]的完整采集窗口。参数范围的源码依据从 oam-tools 源码可以印证上述取值范围与默认行为参数注册于参数解析器 input_parser.cpp其帮助信息明确为Collect start delay time in seconds, range 1 ~ 4294967295s.与Collection duration in seconds, range 1 ~ 4294967295s.取值范围校验通过CheckArgRange(cmdInfo, opt, 1, PROF_MAX_DYNAMIC_TIME)完成input_parser.cpp最小值 1、最大值与动态采集共用的上限PROF_MAX_DYNAMIC_TIME4294967295保持一致解析后的值分别写入参数结构体的delayTime与durationTime字段input_parser.cpp该字段定义于 prof_params.h并支持序列化/反序列化SET_VALUE/FROM_STRING_VALUE见 prof_params.h 与 prof_params.h。使用示例以下命令演示一个最典型的延迟采集场景AI 任务启动 3 秒后开始采集持续采集 3 秒后自动停止msprof --delay3 --duration3 /home/projects/MyApp/out/main执行时序可拆解为t0smsprof 启动拉起用户程序/home/projects/MyApp/out/maint0~3s处于延迟等待阶段不采集任何性能数据t3s--delay计时结束采集启动--duration开始计时t3~6s持续采集性能数据t6s--duration计时结束采集自动停止。若 AI 任务在 3 秒内就结束了执行时间 ≤ delay则整个任务执行期间不会启动采集——这一行为在源码中有对应处理应用模式下若任务在 delay 时间内提前退出会记录日志[App Mode] Before delay time, the app process has exited.并直接结束running_mode.cpp。底层原理采集模式的环境变量注入延迟采集在源码层面的实现并非新增一套独立采集链路而是通过环境变量标记采集模式的方式将--delay/--duration的存在信息传递给运行时 Profiling 组件由底层按延迟窗口控制采集启停。关键证据位于 application.cppif (DynProfCliMgr::instance()-IsAppMode()) { envsV.push_back(DynProfCliMgr::instance()-GetKeyPidEnv()); } if (!params-delayTime.empty() || !params-durationTime.empty()) { envsV.push_back(PROFILING_MODE_ENV DELAY_DURARION_PROFILING_VALUE); }即当且仅当delayTime或durationTime任一非空时msprof 会向用户程序注入环境变量PROFILING_MODEdelay_or_duration常量定义见 config.h。这与动态采集共用PROFILING_MODE环境变量通道动态采集attach 方式要求用户预先设置export PROFILING_MODEdynamic见 PROFILING_MODE 环境变量说明延迟采集则由 msprof 进程侧自动注入delay_or_duration标记无需用户手工配置。因此--delay/--duration与--dynamic在语义上都属于对采集时机的控制通过同一PROFILING_MODE通道生效二者天然互斥——这正是文档中延迟采集场景下不支持动态采集性能数据约束的底层原因。与动态采集的互斥关系延迟采集与 动态采集性能数据--dynamicon属于两种并列的采集时机控制方式具有以下差异与约束对比维度延迟采集--delay / --duration动态采集--dynamic启动时机控制按预设秒数自动延迟启动、自动停止通过交互命令 start / stop 手动控制是否需要交互否全自动是进入(msprof)交互模式参数--delay、--duration可选--dynamicon必选、--pidattach 方式必选启动方式必须传入用户程序app 模式launch 或 attach 两种方式与对方的关系不支持与动态采集同时配置文档明确不支持与延迟采集--delay 和 --duration 参数同时配置两条硬性约束请务必遵守--delay/--duration与--dynamic不能同时配置否则属于非法参数组合动态采集场景下用户程序中不能设置环境变量PROFILING_MODE和PROFILING_OPTIONS详见 动态采集文档 的注意事项而延迟采集的环境变量由 msprof 自动注入用户无需也无法手工干预。常见问题与注意事项采集窗口内无数据若--delay配置的时间超过了 AI 任务的执行时间AI 任务执行期间不会启动采集也就不会产生性能数据。可通过查看 msprof 日志中的[App Mode] Before delay time, the app process has exited.告警running_mode.cpp快速确认是否属于任务提前退出场景。duration 未配置时的行为默认情况下采集随启动持续到 AI 任务结束自动停止适合不关心采集开销、需要完整覆盖任务全程的场景。参数叠加延迟采集参数可与 采集 AI 任务运行性能数据 中的其他采集项参数自由叠加例如同时开启 runtime API、任务耗时等采集维度建议将--delay精确对齐到任务的热点阶段以最小化数据冗余。数据产出与解析采集结束后在输出路径下生成 PROF_XXX 目录性能数据的解析与导出方法可参见 msprof 命令总览 及 AI 任务运行性能数据采集 中的输出说明。小结延迟采集是 msprof 在何时采集维度上的关键能力通过--delay指定延迟启动秒数、--duration指定采集持续秒数即可在 AI 任务运行的关键阶段精准采样显著降低无关数据量。其参数解析、范围校验input_parser.cpp、环境变量注入application.cpp与任务提前退出判定running_mode.cpp在 oam-tools 源码中均有清晰实现读者可结合上述文件路径进一步深入阅读。使用时要牢记仅支持 AI 任务运行性能数据采集场景、必须传入用户程序、且不可与--dynamic同时配置。【免费下载链接】oam-tools本项目为开发者提供故障定位工具包含故障信息收集软硬件信息展示AI core error报错分析等能力提升故障问题定位效率文档可在昇腾社区搜索“故障处理简介”选择社区版。项目地址: https://gitcode.com/cann/oam-tools创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
分享:

看完干货,该让你的企业上线了

免费需求沟通 · 48 小时内出具建站方案 · 河南本地可上门