采集Host侧系统数据

功能说明

msprof支持采集Host侧的系统数据(CPU利用率、内存利用率、磁盘I/O利用率、网络I/O利用率等),并且在采集后可以自动进行性能数据解析和文件落盘。

命令格式

可以在采集AI任务运行性能数据时,采集Host侧系统数据:

msprof [options] <app>

也可以在采集AI处理器系统数据时,采集Host侧系统数据:

msprof --output=<path> --sys-devices=<ID> --sys-period=<period> [options]

参数说明

表1 参数说明

参数 可选/必选 描述
--host-sys --host-sys和--host-sys-usage二者必选其一 Host侧系统数据采集开关,取值包括cpu、mem、disk、network和osrt,可选其中的一项或多项,选多项时用英文逗号隔开。配置该项必须配置host-sys-pid参数或传入用户程序。各项取值含义如下:cpu:进程级别的CPU利用率。mem:进程级别的内存利用率。disk:进程级别的磁盘I/O利用率。network:系统级别的网络I/O利用率。osrt:进程级别的syscall和pthreadcall。配置示例:--host-sys=cpu,mem,disk,network。
说明
- 采集Host侧disk性能数据需要安装第三方开源工具iotop,采集osrt性能数据需要安装第三方开源工具perf和ltrace,其安装方法参见安装perf-iotop-ltrace工具。完成安装后须参见配置用户权限完成用户权限配置,且每次重新安装CANN软件包需要重新配置。
- 使用开源工具ltrace采集osrt性能数据会导致CPU占用率过高,其与应用工程的pthread加解锁相关,会影响进程运行速度。
- x86_64架构的KylinV10SP1操作系统支持--host-sys=osrt参数, aarch64架构的KylinV10SP1操作系统下不支持--host-sys=osrt参数。
- 虚拟化环境Euler2.9系统下不支持--host-sys=network参数。
--host-sys-usage --host-sys和--host-sys-usage二者必选其一 Host侧系统和所有进程的性能数据采集开关,取值包括cpu和mem,可选其中的一项或多项,选多项时用英文逗号隔开。配置该项时如果配置host-sys-pid参数,则采集Host侧指定进程的CPU或内存利用率。取值含义如下:
- cpu:系统和所有进程的CPU利用率。
- mem:系统和所有进程的内存利用率。
配置示例:--host-sys-usage=cpu,mem
--host-sys-pid 可选 指定需要采集的Host侧应用程序的pid。依赖AI任务运行时该参数无需配置,且配置无效。
--host-sys-usage-freq 可选 CPU利用率、内存利用率的采集频率,范围[1,50],默认值50,单位Hz。

使用示例

登录运行环境,在任意路径下执行以下命令:

msprof --output=/home/projects/output --host-sys=cpu /home/projects/MyApp/out/main

或者:

msprof --output=/home/projects/output --sys-devices=<ID> --sys-period=<period> --sys-hardware-mem=on --host-sys-pid=<pid> --host-sys=cpu

在--output指定的目录下生成PROF_XXX目录,存放自动解析后的性能数据,相关结果文件请参见表1。