文档首页 > > 鲲鹏性能分析工具> 用户指南(系统性能分析)> 锁与等待分析>

创建锁与等待分析任务

创建锁与等待分析任务

分享
更新时间:2021/02/01 GMT+08:00

功能描述

锁与等待分析基于Linux perf工具的采样数据,对glibc和开源软件(如MySQL、Open MP)的锁和等待函数(包括sleep、usleep、mutex、cond、spinlock、rwlock、semophore等)进行分析,关联到其归属的进程和调用点,并根据当前已有的优化经验给出优化建议。

前提条件

已成功创建工程,且当前工程下不存在“离线”状态的节点。

操作步骤

  1. 单击工程列表中指定工程后面的

    打开“新建分析任务”页面。

  2. 参考任务管理表1配置任务参数。

    以分析对象“系统”为例,新建锁与等待分析任务,如图1所示。
    图1 新建锁与等待分析任务(系统)
    表1 新建锁与等待分析任务参数说明

    参数

    说明

    任务名称

    输入分析任务的名称。名称需要满足如下要求:

    • 以英文字母开头
    • 长度为6~32个字符
    • 可以包含字母、数字、英文点(.)和下划线(_)

    分析对象

    选择“系统”或“应用”。

    模式

    选择“Launch Application”或”Attach to Process“。

    分析对象选择“应用”时需配置此参数。

    应用路径

    输入待分析的目标应用,需要带上绝对路径。例如分析保存在“/home/test”目录下的“loop_test”应用,则输入:/home/test/loop_test

    分析对象选择“应用”,模式选择“Launch Application”时需配置此参数。

    说明:
    • 默认分析“/opt/”或者“/home/”目录下的应用,管理员用户可在系统性能分析首页中的菜单选项中选择“系统配置”,手动配置“应用程序路径配置”,路径之间采用分号分割。仅管理员用户可修改,普通用户只有查看权限。
    • 修改应用路径配置会影响资源调度分析、微架构分析、访存分析、C/C++程序分析、锁与等待分析、I/O分析的应用程序路径设置,请谨慎修改。
    • 对于保存应用的目录,鲲鹏性能分析工具程序的操作系统运行用户(malluma)需要有可执行权限,对于待分析的应用需要有可读可执行权限。
    • 打开“配置指定节点参数”时各节点可单独配置该参数。

    应用参数(可选)

    输入应用参数,请根据实际应用场景填写。

    分析对象选择“应用”,模式选择“Launch Application”时需配置此参数。

    说明:

    打开“配置指定节点参数”时各节点可单独配置该参数。

    进程名

    输入进程名称,进程名称支持输入正则表达式。

    分析对象选择“应用”,模式选择“Attach to Process”时需配置此参数。

    PID

    输入要分析的进程的PID,最多输入10个,中间用英文逗号分割。PID和进程名可以同时配置。

    分析对象选择“应用”,模式选择“Attach to Process”时需配置此参数。

    说明:
    • “Attach to Process” 针对正在运行的应用程序(鲲鹏性能分析工具程序的操作系统运行用户(malluma)针对运行的应用程序需要有可读权限),通过关联到运行该应用程序的PID的方式,来实时跟踪和采集该应用程序的性能数据。
    • 进程的PID可执行ps -ef | grep 程序名称查询。
    • 打开“配置指定节点参数”时各节点可单独配置该参数。

    分析类型

    选择“锁与等待分析”。

    采样时长 (秒)

    设置采集的时间,默认为30秒。取值范围1~300秒。

    采样间隔 (毫秒)

    设置采样间隔,默认为“自定义”。可选择:

    • 自定义:默认为1毫秒,取值范围1~1000毫秒。
    • 高精度:默认为710微秒。
      说明:

      高精度采样针对采样间隔为1毫秒时采样精度数据不够精确的场景,能够准确跟踪应用程序在高频CPU上运行所占用所有微指令CPU running time(CPU运行时间)。

    采样范围(可选)

    选择采样范围。默认为“所有”,可选择:

    • 所有:采集应用层和OS内核的性能数据
    • 用户态:采集应用层的性能数据
    • 内核态:采集OS内核的性能数据

    标准函数(可选)

    选择预置的glibc的锁与等待函数名。默认为全选以下函数(All表示全选),可选择:

    • All
    • pthread_mutex_lock
    • pthread_mutex_trylock
    • pthread_mutex_unlock
    • pthread_cond_wait
    • pthread_cond_timedwait
    • pthread_cond_reltimedwait_np
    • pthread_cond_signal
    • pthread_cond_broadcast
    • pthread_rwlock_rdlock
    • pthread_rwlock_tryrdlock
    • pthread_rwlock_wrlock
    • pthread_rwlock_trywrlock
    • pthread_rwlock_unlock
    • sem_post
    • sem_wait
    • sem_trywait
    • pthread_spin_lock
    • pthread_spin_trylock
    • pthread_spin_unlock
    • sleep
    • usleep

    自定义函数(可选)

    输入待分析的锁与等待函数名称。

    例如:*lock

    说明:
    • 支持输入多个函数名,两个函数名之间用英文逗号“,”分隔。
    • 支持通配符“*”(函数名的值不能为“*”)。

    符号文件路径(可选)

    输入符号文件在服务器上的绝对路径。

    说明:
    • 当开发者需要观察源代码和汇编指令映射后的性能数据时,并且对应的应用程序无符号表信息,该参数用来导入对应应用程序的符号表。
    • 打开“配置指定节点参数”时各节点可单独配置该参数。

    C/C++源文件路径(可选)

    输入C/C++源文件在服务器上的绝对路径。

    须知:

    该应用的源码请务必符合通用编程规范,否则分析结果中热点函数的源码可能无法正常显示。

    说明:
    • 当开发者需要观察源代码和汇编指令映射后的性能数据时,该参数用来导入对应应用程序的源代码。
    • 打开“配置指定节点参数”时各节点可单独配置该参数。

    内核函数关联汇编代码(可选)

    是否开启内核函数关联汇编指令的功能,默认关闭。

    采集文件大小 (MB)(可选)

    设置采集文件大小。默认为1024MB,取值范围1~4096MB。

    说明:

    通过设置采集文件大小,防止由于文件过大导致分析时间过长。

    预约定时启动

    是否创建预约定时启动任务,详细信息请参考任务管理

    立即执行

    任务创建完成后会自动开始执行,默认勾选。

    说明:

    打开“预约定时启动”将不显示该选项。

    当分析的程序进程较多,分析的数据量较大,可能会出现“任务超时失败”的情况。可通过减少“采样时长”或者增大“采样间隔”来避免这种情况的发生。

  3. 单击“确认”完成分析任务的创建。

    新创建的分析任务会出现在当前工程下的折叠列表中。

分享:

    相关文档

    相关产品

文档是否有解决您的问题?

提交成功!非常感谢您的反馈,我们会继续努力做到更好!
反馈提交失败,请稍后再试!

*必选

请至少选择或填写一项反馈信息

字符长度不能超过200

提交反馈 取消

如您有其它疑问,您也可以通过华为云社区问答频道来与我们联系探讨

智能客服提问云社区提问