创建锁与等待分析任务
功能描述
锁与等待分析基于Linux perf工具的采样数据,对glibc和开源软件(如MySQL、OpenMP)的锁与等待函数(包括sleep、usleep、mutex、cond、spinlock、rwlock、semaphore等)进行分析,关联到其归属的进程和调用点,并根据当前已有的优化经验给出优化建议。
操作实践可参见表1。
前提条件
- 不存在“离线”状态的节点。
- 节点需支持eBPF环境要求,详情请参见eBPF环境检查。
创建锁与等待分析任务
- 单击系统性能分析后面的 。 。选择“通用分析”,打开新建任务页面。 
- 参考“任务管理”和表2配置任务参数。新建锁与等待分析任务,如图1所示。表2 新建锁与等待分析任务参数说明 参数 说明 任务名称 输入分析任务的名称。名称需要满足如下要求: - 只能由中文、字母、数字和下划线组成
- 长度为1~64个字符
 分析类型 选择“锁与等待分析”。 选择节点 选择需要分析的节点;仅支持单节点。 分析对象 仅支持选择“应用”。 模式 仅支持选择“Attach to process”。 PID 输入要分析的进程的PID,最多输入1个;单击输入框可选择对应PID或搜索需要分析进程关键字进行选择。 锁分析类型 选择锁分析的类型,默认全勾选,可选“直方图统计”和“锁实例分析”。 预定义锁类型 根据锁类型,分析对应方法,默认全勾选。可选“pthread mutex”、“pthread condition”和“pthread spin lock”。 采样时长(s) 设置采集的时间,默认为20秒。取值范围1~300秒。 随着采样时长增加,采集处理可能会因超过设定的采集数据大小而终止。 采集原始数据最大大小(MiB) 设置采集原始数据的文件上限。默认为1024MiB,取值范围1~1024MiB。 说明:通过设置采集文件大小,防止由于文件过大导致分析时间过长。 分析栈(可选) 是否对调用栈进行分析,默认关闭。 栈最大深度 分析调用栈的最大栈深,默认为50,取值范围1~100。开启“分析栈”时需配置。 锁等待最小时长(μs) 只采集锁等待时间大于锁等待最小时长的锁事件。默认为0微秒,取值范围为0~10,000,000。锁分析类型选择“锁实例分析”时在“高级设置”中可配置。 锁持有最小时长(μs) 只采集锁持有时间大于锁持有最小时长的锁事件。默认为0微秒,取值范围为0~10,000,000。锁分析类型选择“锁实例分析”时在“高级设置”中可配置。   当分析的程序进程较多,分析的数据量较大,可能会出现“任务超时失败”的情况。可通过减少“采样时长”来避免这种情况的发生。 
- 单击“确认”完成分析任务的创建。单击任务名称后面对应的图标可以执行如下操作:  :取消分析任务,取消分析任务后,已采集的信息会被删除。 :取消分析任务,取消分析任务后,已采集的信息会被删除。
 :重启分析任务,可修改任务参数配置并重新启动分析任务,取消任务或任务失败时可使用。 :重启分析任务,可修改任务参数配置并重新启动分析任务,取消任务或任务失败时可使用。
 :删除分析任务,删除分析任务会将该分析任务下的数据都删除,请谨慎操作。 :删除分析任务,删除分析任务会将该分析任务下的数据都删除,请谨慎操作。
 :再次分析任务,自动命名任务并重新启动分析任务。 :再次分析任务,自动命名任务并重新启动分析任务。
 :修改任务或报告名称,可修改对应任务或报告名称(报告名称规则同任务名称一致)。 :修改任务或报告名称,可修改对应任务或报告名称(报告名称规则同任务名称一致)。
 
