采集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。