创建伪共享分析任务
功能描述
伪共享分析基于ARM SPE(Statistical Profiling Extension)的能力实现。SPE针对指令进行采样,同时记录一些触发事件的信息,包括精确的PC指针信息。利用SPE能力进行伪共享分析,可以得到发生伪共享的次数和比例、指令地址和代码行号、NUMA节点等信息。基于这些信息,用户可以有针对性地修改自己的程序,降低发生伪共享的几率,提高程序处理性能。
前提条件
- 不存在“离线”状态的节点。
- 操作系统需支持perf c2c,要求内核版本为4.19及以上,并且配置SPE(Statistical Profiling Extension)环境,详细步骤请参见配置SPE环境。
- 伪共享分析暂不支持虚拟机环境。
创建伪共享分析任务
- 单击系统性能分析后面的。
选择“通用分析”,打开新建任务页面。
- 参考“任务管理”和表1配置任务参数。新建伪共享分析任务,如图1所示。
表1 新建伪共享分析任务参数说明 参数
说明
任务名称
输入分析任务的名称。名称需要满足如下要求:
- 只能由中文、字母、数字和下划线组成
- 长度为1~64个字符
选择节点
选择需要分析的节点;只有一个节点时默认勾选,最多支持10个节点。
分析对象
选择“系统”或“应用”。
模式
选择“Launch application”或”Attach to process“。
分析对象选择“应用”时需配置此参数。
应用路径
输入待分析应用的绝对路径。例如分析保存在“/home/test”目录下的“loop_test”应用,则输入:/home/test/loop_test
分析对象选择“应用”,模式选择“Launch application”时需配置此参数。
说明:- 默认分析“/opt/”或者“/home/”目录下的应用,管理员用户可在首页右上方的“>工具设置>系统性能分析>系统设置”中,手动配置“应用程序路径配置”,路径之间采用分号分隔。仅管理员用户可修改,普通用户只有查看权限。
应用程序路径建议配置为 “/home”、“/opt”等,请不要配置为“/”、“/dev”、“/sys”、“/boot”等系统目录,否则可能导致系统异常。
- 对于保存应用的目录,系统性能分析工具程序的操作系统运行用户(devkitworker1)对于待分析的应用需要有可读可执行权限。
- 多节点场景下,打开“配置指定节点参数”选项可单独配置各节点的该参数。
应用参数(可选)
输入应用参数,请根据实际应用场景填写。
分析对象选择“应用”,模式选择“Launch application”时可配置此参数。
说明:打开“配置指定节点参数”时各节点可单独配置该参数。
应用运行用户(可选)
运行应用的操作系统用户信息。应用默认运行在工具内置devkitworker1用户下;如果应用运行对用户有依赖,需打开选项配置对应的用户密码后在对应用户下执行。
模式为“Launch application”时可配置,默认关闭。
用户名
输入拉起应用的系统用户。
“应用运行用户”选项打开时需配置。
密码
输入用户的密码。
“应用运行用户”选项打开时需配置。
进程名
输入进程名称,进程名称支持输入正则表达式。
分析对象选择“应用”,模式选择“Attach to process”时需配置此参数。
PID(可选)
输入要分析的进程的PID,最多输入128个,中间用英文逗号分割。PID和进程名可以同时配置。
分析对象选择“应用”,模式选择“Attach to process”时可配置此参数。
说明:- “Attach to process” 针对正在运行的应用程序(系统性能分析工具程序的操作系统运行用户(devkitworker1)针对运行的应用程序需要有可读权限),通过关联到运行该应用程序的PID的方式,来实时跟踪和采集该应用程序的性能数据。
- 进程的PID可执行ps -ef | grep 程序名称查询。
- 打开“配置指定节点参数”时各节点可单独配置该参数。
分析类型
选择“访存分析”。
访存分析类型
选择“伪共享分析”。
采样时长 (s)
设置采样的时长。默认为3秒。取值范围1~10秒。
说明:采样时间不宜过长,建议选择3秒、5秒或10秒。较长的采样时间可能会导致采集的数据量过大,从而使得分析花费的时间过长。此外,长时间采样也可能会造成观测到的不是并发的伪共享,而是时间错开的cache Line访问。
采样间隔 (指令数)
设置采样间隔。默认为1024,取值范围1024~2^32-1。在“高级配置”中需配置。
说明:可通过增大采样间隔来减少采样数据。但采样间隔较大也可能会导致伪共享采样点较少。
延迟采样时长 (s)(可选)
设置延迟采样时长。默认为0秒,取值范围0~900秒。在“高级配置”中可配置。
说明:用于指定时间后执行分析,可以忽略程序的启动流程分析或者用于采集程序热身,消除环境检测等带来的采集延迟。
待采样CPU核(可选)
输入CPU核编号。在“高级配置”中可配置。
说明:- 该参数针对某些CPU核进行性能分析的场景,如需要观察某应用程序在某个CPU核上的性能数据,需要在此输入对应的CPU核,取值范围是0~(服务器总CPU核数 - 1)。举例:如16核CPU的服务器,可以输入“0,1,2,10”,表示针对CPU的第0、1、2、10核进行性能数据采集和分析。
- 若已知运行了应用线程的CPU核编号,可通过设置待采样CPU核编号来减少采样数据。
- 打开“配置指定节点参数”时各节点可单独配置该参数。
采样范围(可选)
选择采样范围。默认为“用户态”,在“高级配置”中可配置。可选择:
- 所有:采集应用层和OS内核的性能数据
- 用户态:采集应用层的性能数据
- 内核态:采集OS内核的性能数据
说明:如果不分析内核,只分析用户态程序,建议使用“用户态”采样。
符号文件路径(可选)
输入符号文件在服务器上的绝对路径。在“高级配置”中可配置。
说明:- 当开发者需要观察源代码和汇编指令映射后的性能数据时,并且对应的应用程序无符号表信息,该参数用来导入对应应用程序的符号表。
- 打开“配置指定节点参数”时各节点可单独配置该参数。
C/C++源文件路径(可选)
输入C/C++源文件在服务器上的绝对路径。在“高级配置”中可配置。
须知:该应用的源码请务必符合通用编程规范,否则分析结果中热点函数的源码可能无法正常显示。
说明:- 当开发者需要观察源代码和汇编指令映射后的性能数据时,该参数用来导入对应应用程序的源代码。
- 打开“配置指定节点参数”时各节点可单独配置该参数。
内核函数关联汇编代码(可选)
是否开启内核函数关联汇编指令的功能,默认关闭。在“高级配置”中可配置。
采集文件大小 (MiB)(可选)
设置采集文件大小。默认为10MB,取值范围1~1024MB。在“高级配置”中可配置。
说明:通过设置采集文件大小,防止由于文件过大导致分析时间过长。
任务时间
配置任务是否立即执行,默认选择“立即执行”,可选“立即执行”和“预约定时启动”;“高级配置”中需配置。
选择“预约定时启动”时,需配置“采集方式”、“采集时间”和“采集日期”。
周期采集:该任务在采集周期内每天生效一次;周期采集需配置“采集时间”和“采集日期”。
单次采集:该任务只生效一次;单次采集需配置“采集日期和时间”。
说明:- 单个用户最多可创建20个预约任务。
- 新创建的预约任务会出现在右上角“>工具设置>系统性能分析”中的“预约任务”列表中,可在“预约任务”列表中查看、修改和删除(可批量删除)预约任务。
- 预约任务暂不支持重启,有预约的任务暂无重启按钮。
- 单击“确认”完成分析任务的创建。
单击任务名称后面对应的图标可以执行如下操作:
- :停止分析任务,停止分析任务后,已采集的信息会被删除。
- :重启分析任务,可修改任务参数配置并重新启动分析任务,取消任务或任务失败时可使用。
- :删除分析任务,删除分析任务会将该分析任务下的数据都删除,请谨慎操作。
- :再次分析任务,自动命名任务并重新启动分析任务。
- :新建全景分析任务的对比分析。
- :修改任务或报告名称,可修改对应任务或报告名称(报告名称规则同任务名称一致)。