本技术涉及计算机,更具体地说,涉及一种集群监控方法、装置及电子设备和存储介质。
背景技术:
1、现代处理器都集成了性能计数器(pmu,performance monitor unit),其能够收集应用程序、操作系统以及处理器性能信息,这些信息可以帮助确认应用程序或操作系统内热点,分析软件运行瓶颈。由于不同厂家制造处理器部件与流水线不同,pmu单元个数与支持监控性能事件也有较大差别。即使是同一厂家,在不同型号设备上支持的性能监控事件也有较大差异。
2、对于硬件支持的所有性能监控事件,linux系统内并没有对应的监控说明文档,用户在使用时无法了解当前硬件所支持的所有性能事件或是每个事件所支持性能指标具体含义。对于使用者来说,在不同厂商的不同型号处理器上对软件进行性能分析时,需要参考硬件厂商提供的软件手册了解当前硬件平台支持的性能事件。这对于使用者是非常高的负担,由于不了解新平台支持的所有性能事件,用户无法确认在程序执行过程中需要监控哪些性能指标,导致无法准确判断程序在新平台运行过程中性能瓶颈。
3、因此,如何通过对硬件平台进行监控准确判断硬件平台运行过程中的性能瓶颈是本领域技术人员需要解决的技术问题。
技术实现思路
1、本技术的目的在于提供一种集群监控方法、装置及电子设备和存储介质,通过对硬件平台进行监控准确判断硬件平台运行过程中的性能瓶颈。
2、为实现上述目的,本技术提供了一种集群监控方法,包括:
3、搜索当前硬件平台支持的性能事件,获取所述性能事件的监控结果;
4、根据所述性能事件的监控结果确定所述性能事件之间的相关性,并基于所述性能事件之间的相关性进行性能事件的分组;
5、对性能事件组进行监控,并确定所述性能事件组的监控结果;
6、根据所述性能事件组的监控结果确定目标性能事件组,对所述目标性能事件组中的性能事件进行监控。
7、其中,所述获取所述性能事件的监控结果,包括:
8、运行测试软件,并在测试过程中利用性能分析工具监控所述测试软件运行过程中所述性能事件的监控结果。
9、其中,所述在测试过程中利用性能分析工具监控所述测试软件运行过程中所述性能事件的监控结果,包括:
10、将所述性能事件的事件参数输入性能分析工具,以在测试过程中利用性能分析工具监控所述测试软件运行过程中所述性能事件的监控结果。
11、其中,所述事件参数包括事件编号、掩码编号和事件名称中任一项或任几项的组合。
12、其中,所述运行测试软件,并在测试过程中利用性能分析工具监控所述测试软件运行过程中所述性能事件的监控结果,包括:
13、根据所述当前硬件平台的性能计数器数量确定同时监控的性能事件数量nu;
14、每次运行测试软件时,利用性能分析工具监控所述测试软件运行过程中nu个性能事件的监控结果;
15、运行np/nu次所述测试软件之后,得到所述当前硬件平台支持的性能事件的监控结果;其中,np为所述当前硬件平台支持的性能事件的数量。
16、其中,所述根据所述性能事件的监控结果确定所述性能事件之间的相关性,包括:
17、对所述性能事件的监控结果进行归一化处理,并根据所述性能事件归一化处理后的监控结果确定所述性能事件之间的相关性。
18、其中,对所述性能事件的监控结果进行归一化处理,包括:
19、根据归一化处理公式对所述性能事件的监控结果进行归一化处理;其中,所述归一化处理公式为:,为第t时刻归一化处理前的监控结果,为第t时刻归一化处理后的监控结果。
20、其中,根据所述性能事件归一化处理后的监控结果确定所述性能事件之间的相关性,包括:
21、根据相关性计算公式确定所述性能事件之间的相关性;其中,所述相关性计算公式为:
22、;
23、其中,为性能事件x归一化处理前的监控结果序列,为性能事件y归一化处理前的监控结果序列,t为时刻点总数,t为时刻编号,t=1、2、…、t,为傅里叶变换后频域序列,为傅里叶变换后频域序列,k=1、2、…、t,为频域编号,=1、2、…、t,为性能事件x与性能事件y之间的相关性,,,为性能事件x第t时刻归一化处理后的监控结果,为性能事件y第t时刻归一化处理后的监控结果,i为虚数。
24、其中,所述基于所述性能事件之间的相关性进行性能事件的分组,包括:
25、确定相关性系数最低的第一性能事件和第二性能事件,将所述第一性能事件和所述第二性能事件分别作为一级性能事件创建第一性能事件组和第二性能事件组;
26、根据其他性能事件与所述第一性能事件、所述第二性能事件之间的相关性系数对所述其他性能事件进行分组;其中,所述其他性能事件为除所述第一性能事件和所述第二性能事件之外的性能事件。
27、其中,所述根据其他性能事件与所述第一性能事件、所述第二性能事件之间的相关性系数对所述其他性能事件进行分组,包括:
28、判断其他性能事件与所述一级性能事件之间的相关性系数的最小值是否小于预设值;
29、若是,则将所述其他性能事件作为二级性能事件加入所述最小值对应的一级性能事件所属的性能事件组中;
30、若否,则将所述其他性能事件作为一级性能事件创建其他性能事件组。
31、其中,所述对性能事件组进行监控,并确定所述性能事件组的监控结果,包括:
32、对性能事件组中的一级性能事件进行监控,并将所述性能事件组中一级性能事件的监控结果作为所述性能事件组的监控结果。
33、其中,对所述目标性能事件组中的性能事件进行监控,包括:
34、对所述目标性能事件组中的一级性能事件和二级性能事件进行监控。
35、为实现上述目的,本技术提供了一种集群监控装置,包括:
36、搜索模块,用于搜索当前硬件平台支持的性能事件,获取所述性能事件的监控结果;
37、分组模块,用于根据所述性能事件的监控结果确定所述性能事件之间的相关性,并基于所述性能事件之间的相关性进行性能事件的分组;
38、第一监控模块,用于对性能事件组进行监控,并确定所述性能事件组的监控结果;
39、第二监控模块,用于根据所述性能事件组的监控结果确定目标性能事件组,对所述目标性能事件组中的性能事件进行监控。
40、其中,所述搜索模块具体用于:运行测试软件,并在测试过程中利用性能分析工具监控所述测试软件运行过程中所述性能事件的监控结果。
41、其中,所述搜索模块具体用于:将所述性能事件的事件参数输入性能分析工具,以在测试过程中利用性能分析工具监控所述测试软件运行过程中所述性能事件的监控结果。
42、其中,所述事件参数包括事件编号、掩码编号和事件名称中任一项或任几项的组合。
43、其中,所述搜索模块具体用于:根据所述当前硬件平台的性能计数器数量确定同时监控的性能事件数量nu;每次运行测试软件时,利用性能分析工具监控所述测试软件运行过程中nu个性能事件的监控结果;运行np/nu次所述测试软件之后,得到所述当前硬件平台支持的性能事件的监控结果;其中,np为所述当前硬件平台支持的性能事件的数量。
44、其中,所述分组模块具体用于:对所述性能事件的监控结果进行归一化处理,并根据所述性能事件归一化处理后的监控结果确定所述性能事件之间的相关性。
45、其中,所述分组模块具体用于:根据归一化处理公式对所述性能事件的监控结果进行归一化处理;其中,所述归一化处理公式为:,为第t时刻归一化处理前的监控结果,为第t时刻归一化处理后的监控结果。
46、其中,所述分组模块具体用于:根据相关性计算公式确定所述性能事件之间的相关性;其中,所述相关性计算公式为:
47、;
48、其中,为性能事件x归一化处理前的监控结果序列,为性能事件y归一化处理前的监控结果序列,t为时刻点总数,t为时刻编号,t=1、2、…、t,为傅里叶变换后频域序列,为傅里叶变换后频域序列,k=1、2、…、t,为频域编号,=1、2、…、t,为性能事件x与性能事件y之间的相关性,,,为性能事件x第t时刻归一化处理后的监控结果,为性能事件y第t时刻归一化处理后的监控结果,i为虚数。
49、其中,所述分组模块具体用于:确定相关性系数最低的第一性能事件和第二性能事件,将所述第一性能事件和所述第二性能事件分别作为一级性能事件创建第一性能事件组和第二性能事件组;根据其他性能事件与所述第一性能事件、所述第二性能事件之间的相关性系数对所述其他性能事件进行分组;其中,所述其他性能事件为除所述第一性能事件和所述第二性能事件之外的性能事件。
50、其中,所述分组模块具体用于:判断其他性能事件与所述一级性能事件之间的相关性系数的最小值是否小于预设值;若是,则将所述其他性能事件作为二级性能事件加入所述最小值对应的一级性能事件所属的性能事件组中;若否,则将所述其他性能事件作为一级性能事件创建其他性能事件组。
51、其中,所述第一监控模块具体用于:对性能事件组中的一级性能事件进行监控,并将所述性能事件组中一级性能事件的监控结果作为所述性能事件组的监控结果。
52、其中,所述第二监控模块具体用于:对所述目标性能事件组中的一级性能事件和二级性能事件进行监控。
53、为实现上述目的,本技术提供了一种电子设备,包括:
54、存储器,用于存储计算机程序;
55、处理器,用于执行所述计算机程序时实现如上述集群监控方法的步骤。
56、为实现上述目的,本技术提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如上述集群监控方法的步骤。
57、通过以上方案可知,本技术提供的一种集群监控方法,包括:搜索当前硬件平台支持的性能事件,获取所述性能事件的监控结果;根据所述性能事件的监控结果确定所述性能事件之间的相关性,并基于所述性能事件之间的相关性进行性能事件的分组;对性能事件组进行监控,并确定所述性能事件组的监控结果;根据所述性能事件组的监控结果确定目标性能事件组,对所述目标性能事件组中的性能事件进行监控。
58、本技术提供的集群监控方法,自动收集当前平台支持的所有性能事件,并通过基准测试监控结果,对性能事件进行分组,将趋势相近的性能事件划分至一组,分组监控可以减少用户需要筛选的监控指标数量,降低监控过程操作步骤并提高效率。通过性能事件收集和分组过程自动化,能够保证用户在平台上进行性能监控时获得性能指标的完整性。通过同时对多组性能事件组监控,迅速搜索性能瓶颈,对单个性能事件组中对多个事件进行详细监控,从而判断具体性能瓶颈。本技术还公开了一种集群监控装置及一种电子设备和一种计算机可读存储介质,同样能实现上述技术效果。
59、应当理解的是,以上的一般描述和后文的细节描述仅是示例性的,并不能限制本技术。