Miss事件分析

CPU访问数据时将逐级查找缓存,目标数据不在缓存中即为cache miss(cache miss较多时性能将大幅降低)命令提供对业务进行LLC Miss,TLB Miss,Remote Access,Long Latency Load等Miss类事件分析,便于用户针对性修改程序,提高程序处理性能。

命令功能

利用SPE(Statistical Profiling Extension)能力对业务进行LLC Miss,TLB Miss,Remote Access,Long Latency Load等Miss类事件分析,可以有针对性地修改自己的程序,降低Miss事件发生的几率,提高程序处理性能。

  • 采集Miss事件数据时需要服务器支持ARM SPE采集能力,配置SPE请参见配置SPE环境
  • Miss事件分析支持openEuler 20.x及以上的操作系统,以及基于openEuler研发的操作系统;不支持虚拟机和容器环境。

命令格式

1
devkit tuner miss [-h] [-c {n | n,m | n-m}] [-d <sec>] [-P n] [-D <sec>] [-l {0, 1, 2, 3}] [-m {1, 2, 3, 4}] [-L n] [-i <sec>] [-r {user, kernel, all}] [-o] [-s] [-p {PID1 | PID1,PID2 | ALL}] [--package] [--long-name] [--dwarf] [workload workload...]

工具可采集指定应用,命令中[workload workload...]替换为应用路径加应用参数。

参数说明

表1 参数说明

参数

参数选项

说明

-h/--help

-

获取帮助信息。

-c/--cpu

-

指定采集的CPU核数,如“0”、“0,1,2”、“0-2”。

-d/--duration

-

设置采集时长,单位为秒,最小值为1秒,默认一直采集,可使用Ctrl+\取消任务或Ctrl+C停止采集并进入分析。

-P/--period

-

设置指令数采样间隔,默认8092个,取值范围1024至4,294,967,295个。

-D/--delay

-

设置延迟采样时长,默认为0秒,需小于采集时长。

-i/--interval

-

设置任务的采集间隔(以秒为单位)。最小值为1秒,最大值不能超过采集时长,默认为采集时长。如果不指定间隔,不生成子报告。每个子报告中收集数据的时间取决于间隔参数。

-l/--log-level

0/1/2/3

设置日志级别,默认为1。
  • 0:日志级别为DEBUG。
  • 1:日志级别为INFO。
  • 2:日志级别为WARNING。
  • 3:日志级别为ERROR。

-m/--metric

1/2/3/4

选择采集数据的等级。默认为1(LLC Miss)。
  • 1(LLC Miss):内存请求在最后一级Cache中未命中的次数。
  • 2(TLB Miss):CPU在内存访问或取址过程中,在TLB中没有找到虚拟地址到物理地址映射次数。
  • 3(Remote Access):跨CPU访问远程DRAM的次数。
  • 4(Long Latency Load):跨CPU访问远程DRAM,并且访问时延超过设定的最小时延的次数。

-L/--latency

-

设置最小延迟(时钟周期),在采集Long Latency Load数据时可以设置,默认为0。

-r/--collection-range

user/kernel/all

设置采集模式,默认为all。

  • all:采集用户态和内核态的性能数据。
  • user:采集用户态的性能数据。
  • kernel:采集内核态的性能数据。

-o/--output

-

设置报告数据压缩包名称和输出路径,仅输入名称时默认生成在当前所在目录;需和--package配合使用。

-s/--src-dir

-

指定C/C++源码工作目录,用于查找并关联源码,可将任务导入Web端查看。

-p/--pid

PID/PID1,PID2/ALL

指定采集的进程PID,多个进程PID可用“,”分隔。默认采集全部进程(ALL)。若同时使用-p和-c参数则优先采集指定PID的进程。

--package

-

设置是否生成报告数据压缩包,不指定压缩包名称和路径时默认在当前所在目录生成miss-时间戳.tar。

--long-name

-

设置是否显示详细函数和模块信息。不使用此参数默认简洁显示模块或功能信息。

-t/--top

-

设置报告中显示数据数量,默认为10个,最小值为1个。

--dwarf

-

设置是否展示关联源码文件。

使用示例