一种性能事件监控方法技术

技术编号:39804532 阅读:9 留言:0更新日期:2023-12-22 02:35
本申请涉及一种性能事件监控方法

【技术实现步骤摘要】
一种性能事件监控方法、装置、设备和存储介质


[0001]本申请涉及计算机
,特别是涉及一种性能事件监控方法

装置

设备和存储介质


技术介绍

[0002] 现代处理器都集成了性能计数器(
Performance Monitor Unit

PMU
),其能够收集应用程序

操作系统以及处理器性能信息,这些信息可以帮助确认应用程序或操作系统内热点,分析软件运行瓶颈
。PMU
具有监控过程中额外开销较低,对目标应用干扰较小等优点,并且能够同时记录多个微架构性能事件特征

[0003] 目前
Linux
系统内通过性能监控工具
perf
等可以对
PMU
监控事件进行读写,从而实现对用户运行程序性能进行监控


Linux
系统内常用的性能监控工具
perf
中,将性能监控指标分为了软件指标和硬件指标

对于一些常用的性能分析工具,如
Intel Vtune、PAPI、TAU
等,在新硬件平台运行时需要用户指定性能事件,无法对平台支持的性能监控事件进行判断与分类

对于使用者来说,在不同厂商的不同型号处理器上对软件进行性能分析时,需要参考硬件厂商提供的软件手册了解当前硬件平台支持的性能事件,用户无法确认在程序执行过程中需要监控的性能指标,导致无法准确判断程序在新平台运行过程中的性能瓶颈


技术实现思路

[0004]基于此,本申请提供了一种性能事件监控方法

装置

设备和存储介质,以全面

准确地判断应用程序在硬件平台运行的性能瓶颈

[0005]第一方面,提供一种性能事件监控方法,该方法包括:获取硬件平台支持运行的性能事件列表;根据性能事件列表,获取性能事件列表中性能事件的监控信息;根据监控信息,对性能事件进行分类,得到性能事件分组;根据性能事件分组,自动监控硬件平台支持运行的性能事件

[0006]根据本申请实施例中一种可实现的方式,根据性能事件列表,获取性能事件列表中性能事件的监控信息,包括:响应于用户发送的测试请求信息,启动中央处理器的运行;在中央处理器处于运行状态下,监控性能事件列表中的每个性能事件,得到每个性能事件的监控信息

[0007]根据本申请实施例中一种可实现的方式,每次监控性能事件的个数与硬件平台部署的性能计数器的个数相同,性能事件列表中性能事件的个数与每次监控性能事件的个数的比值为循环监控的次数

[0008]根据本申请实施例中一种可实现的方式,根据监控信息,对性能事件进行分类,得到性能事件分组,包括:
根据监控信息,计算性能事件列表中性能事件之间的相关系数;根据相关系数构造事件相关矩阵;根据事件相关矩阵,对性能事件进行分类,得到性能事件分组

[0009]根据本申请实施例中一种可实现的方式,监控信息包括每个性能事件在监控周期内的监控值;根据监控信息,计算性能事件列表中性能事件之间的相关系数,包括:对每个性能事件在监控周期内的监控值进行归一化处理,得到每个性能事件的归一化序列值;根据归一化序列值,计算每个性能事件的频域序列值;根据频域序列值,计算性能事件列表中性能事件之间的相关系数

[0010]根据本申请实施例中一种可实现的方式,根据事件相关矩阵,对性能事件进行分类,得到性能事件分组,包括:确定事件相关矩阵中的最大相关系数对应的第一性能事件和第二性能事件为第一事件组和第二事件组的一级事件;分别计算剩余性能事件与第一性能事件和第二性能事件的相似系数,剩余性能事件为性能事件列表中除第一性能事件和第二性能事件之外的性能事件;将与第一性能事件的相似系数最大的第一剩余性能事件确定为第一事件组的二级事件,将与第二性能事件的相似系数最大的第二剩余性能事件确定为第二事件组的二级事件;依次类推,直至计算剩余性能事件中的性能事件与事件组中性能事件的最大相关系数超过预设阈值,停止分类,得到性能事件分组

[0011]根据本申请实施例中一种可实现的方式,根据性能事件分组,自动监控硬件平台支持运行的性能事件,包括:监控性能事件分组中多个事件组的预设级别事件,得到监控结果代表值;根据监控结果代表值,搜索热点性能事件;根据热点性能事件,判断应用程序的性能瓶颈

[0012]根据本申请实施例中一种可实现的方式,根据热点性能事件,判断性能瓶颈,包括:根据热点性能事件,确定目标事件组;监控目标事件组中的预设级别事件,判断应用程序的性能瓶颈

[0013]根据本申请实施例中一种可实现的方式,根据性能事件分组,自动监控硬件平台支持运行的性能事件,包括:监控性能事件分组中满足预设条件的事件组中所有性能事件,判断应用程序的性能瓶颈

[0014]根据本申请实施例中一种可实现的方式,该方法还包括:通过预设命令获取中央处理器的型号,在性能事件数据库中查找中央处理器的型号对应的性能事件列表

[0015]根据本申请实施例中一种可实现的方式,该方法还包括:当在性能事件数据库中未查找到中央处理器的型号时,向用户终端发送反馈信息,反馈信息用于表示不支持在当前平台进行自动监控性能操作

[0016]根据本申请实施例中一种可实现的方式,该方法还包括:将监控信息按照
csv
格式保存在结果文件中,将每组性能事件保存在单个
json
文件中

[0017]第二方面,提供了一种性能事件监控装置,该装置应用于硬件平台,该装置包括:性能事件分类模块和自动性能监控模块,性能事件分类模块包括性能事件获取单元

事件监控结果获取单元和性能事件分类单元;性能事件获取单元,用于获取硬件平台支持运行的性能事件列表;事件监控信息获取单元,用于根据性能事件列表,获取性能事件列表中性能事件的监控信息;性能事件分类单元,用于根据监控信息,对性能事件进行分类,得到性能事件分组;自动性能监控模块,用于根据性能事件分组,自动监控硬件平台支持运行的性能事件

[0018] 第三方面,提供了一种计算机设备,包括:至少一个处理器;以及与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有可被所述至少一个处理器执行的计算机指令,所述计算机指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行上述第一方面中涉及的方法

[0019]第四方面,提供了一种计算机可读存储介质,其上存储有计算机指令,其特征在于,所述计算机指令用于使计算机执行上述第一方面中涉及的方法

[0020]根据本申请实施例所提供的
技术实现思路
,通过获取本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.
一种性能事件监控方法,其特征在于,所述方法包括:获取硬件平台支持运行的性能事件列表;根据所述性能事件列表,获取所述性能事件列表中性能事件的监控信息;根据所述监控信息,对所述性能事件进行分类,得到性能事件分组;根据所述性能事件分组,自动监控所述硬件平台支持运行的性能事件
。2.
根据权利要求1所述的方法,其特征在于,所述根据所述性能事件列表,获取所述性能事件列表中性能事件的监控信息,包括:响应于用户发送的测试请求信息,启动中央处理器的运行;在中央处理器处于运行状态下,监控所述性能事件列表中的每个性能事件,得到所述每个性能事件的监控信息
。3.
根据权利要求2所述的方法,其特征在于,每次监控性能事件的个数与所述硬件平台部署的性能计数器的个数相同,所述性能事件列表中性能事件的个数与每次监控性能事件的个数的比值为循环监控的次数
。4.
根据权利要求1所述的方法,其特征在于,所述根据所述监控信息,对所述性能事件进行分类,得到性能事件分组,包括:根据所述监控信息,计算所述性能事件列表中性能事件之间的相关系数;根据所述相关系数构造事件相关矩阵;根据所述事件相关矩阵,对所述性能事件进行分类,得到性能事件分组
。5.
根据权利要求4所述的方法,其特征在于,所述监控信息包括每个性能事件在监控周期内的监控值;所述根据所述监控信息,计算所述性能事件列表中性能事件之间的相关系数,包括:对所述每个性能事件在监控周期内的监控值进行归一化处理,得到每个性能事件的归一化序列值;根据所述归一化序列值,计算每个性能事件的频域序列值;根据所述频域序列值,计算所述性能事件列表中性能事件之间的相关系数
。6.
根据权利要求4所述的方法,其特征在于,所述根据所述事件相关矩阵,对所述性能事件进行分类,得到性能事件分组,包括:确定所述事件相关矩阵中的最大相关系数对应的第一性能事件和第二性能事件为第一事件组和第二事件组的一级事件;分别计算剩余性能事件与所述第一性能事件和所述第二性能事件的相似系数,所述剩余性能事件为所述性能事件列表中除第一性能事件和第二性能事件之外的性能事件;将与所述第一性能事件的相似系数最大的第一剩余性能事件确定为所述第一事件组的二级事件,将与所述第二性能事件的相似系数最大的第二剩余性能事件确定为所述第二事件组的二级事件;依次类推,直至计算剩余性能事件中的性能事件与事件组中性能事件的最大相关系数超过预设阈值,停止分类,得到性能事件分组
。7.
根据权利要求1所述的方法,其特征在于,所述根据所述性能事件分组,自动监控所述硬件平台支持运行的性能事件,包括:监控所述性能事件分组中多个事件组...

【专利技术属性】
技术研发人员:李龙翔刘羽
申请(专利权)人:苏州元脑智能科技有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1