本发明涉及数据处理,尤其涉及一种cpu使用率的计算方法及相关设备。
背景技术:
1、cpu usage是表示cpu使用率的数值,cpu架构从单核、多核和大小核,一路演变而来,同时cpu使用率的计算方法也在不断的改进和革新。计算过程中所使用到的cpu的总量,可以是时间总量,也可以是算力总量,在统计cpu性能时,一般会更关心算力总量,但是随着大小核、系统平台的不断发展,现有只关心时间和频率两个维度的cpu使用率计算方法已经存在不足,难以满足cpu使用率计算需求。
2、因此,现有技术还有待于改进和发展。
技术实现思路
1、本发明的主要目的在于提供一种cpu使用率的计算方法及相关设备,以解决上述背景技术中所提到的现有技术所存在的技术问题。
2、本发明第一方面提供了一种cpu使用率的计算方法,包括:
3、获取统计周期内cpu所有进程的运行片段的执行信息列表;
4、从所述执行信息列表中获取得到每条所述运行片段的执行时刻、执行时长和执行cpu核心;
5、基于所有所述运行片段的所述执行时刻构建得到时刻/cpu核心频率列表;
6、从所述时刻/cpu核心频率列表中获得各个所述执行cpu核心的工作频率值;
7、从系统硬件配置信息中读取得到所述cpu中各个所述执行cpu核心的额定算力值和额定频率值;
8、基于每条所述运行片段所述执行时刻对应的所述执行时长、所述执行cpu核心的所述工作频率值、所述执行cpu核心的所述额定算力值以及所述执行cpu核心的所述额定频率值,计算得到每条所述运行片段的cpu算力消耗;
9、汇总所有所述运行片段的所述cpu算力消耗,获得所有所述运行片段的cpu总算力消耗值;
10、计算统计周期内所述cpu的全部算力值;
11、通过所述cpu总算力消耗值除以所述全部算力值获得当前的cpu使用率。
12、在本发明第一方面一种可选的实施方式中,所述获取统计周期内cpu所有进程的运行片段的执行信息列表包括:
13、通过perfetto工具抓取所述cpu所述统计周期内的运行数据并存储为trace文件;
14、解析所述trace文件获得所述统计周期内所述cpu所有进程的运行片段的执行信息列表。
15、在本发明第一方面一种可选的实施方式中,所述基于所有所述运行片段的所述执行时刻构建得到时刻/cpu核心频率列表包括:
16、解析所述trace文件获得所述统计周期内所述cpu各个所述执行cpu核心的各个所述执行时刻的时刻/cpu核心频率原始列表;
17、对所述时刻/cpu核心频率原始列表基于所述执行信息列表中的执行时刻顺序进行重新排序,获得所述时刻/cpu核心频率列表。
18、在本发明第一方面一种可选的实施方式中,每条所述运行片段的cpu算力消耗=所述执行时长*所述执行cpu核心的所述工作频率值*所述执行cpu核心的所述额定算力值/所述执行cpu核心的所述额定频率值。
19、在本发明第一方面一种可选的实施方式中,所述计算统计周期内所述cpu的全部算力值包括:
20、基于所述cpu各个所述执行cpu核心的额定算力值,计算得到所述cpu的额定总算力;
21、通过所述额定总算力乘以所述统计周期获得统计周期内所述cpu的全部算力值。
22、本发明第二方面提供了一种cpu使用率的计算系统,所述cpu使用率的计算系统包括:
23、执行信息列表获取模块,用于获取统计周期内cpu所有进程的运行片段的执行信息列表;
24、信息提取模块,用于从所述执行信息列表中获取得到每条所述运行片段的执行时刻、执行时长和执行cpu核心;
25、时刻/cpu核心频率列表构建模块,用于基于所有所述运行片段的所述执行时刻构建得到时刻/cpu核心频率列表;
26、最大频率值获取模块,用于从所述时刻/cpu核心频率列表中获得各个所述执行cpu核心的工作频率值;
27、额定算力值获取模块,用于从系统硬件配置信息中读取得到各个所述执行cpu核心的额定算力值;
28、cpu算力消耗计算模块,用于基于每条所述运行片段所述执行时刻对应的所述执行时长、所述执行cpu核心的工作频率、所述执行cpu核心的所述额定算力值以及所述执行cpu核心的所述最大频率值,计算得到每条所述运行片段的cpu算力消耗;
29、总cpu算力消耗值计算模块,用于汇总所有所述运行片段的所述cpu算力消耗,获得所有所述运行片段的cpu总算力消耗值;
30、全部算力值计算模块,用于计算统计周期内所述cpu的全部算力值;
31、使用率计算模块,用于通过所述cpu总算力消耗值除以所述全部算力值获得当前的cpu使用率。
32、在本发明第二方面一种可选的实施方式中,所述执行信息列表获取模块包括:
33、数据抓取存储单元,用于通过perfetto工具抓取所述cpu所述统计周期内的运行数据并存储为trace文件;
34、文件解析单元,用于解析所述trace文件获得所述统计周期内所述cpu所有进程的运行片段的执行信息列表。
35、在本发明第二方面一种可选的实施方式中,所述时刻/cpu核心频率列表构建模块包括:
36、原始列表获取单元,用于解析所述trace文件获得所述统计周期内所述cpu各个所述执行cpu核心的各个所述执行时刻的时刻/cpu核心频率原始列表;
37、重排单元,用于对所述时刻/cpu核心频率原始列表基于所述执行信息列表中的执行时刻顺序进行重新排序,获得所述时刻/cpu核心频率列表。
38、本发明第三方面提供了一种cpu使用率的计算设备,所述cpu使用率的计算设备包括:存储器和至少一个处理器,所述存储器中存储有指令,所述存储器和所述至少一个处理器通过线路互连;
39、所述至少一个处理器调用所述存储器中的所述指令,以使得所述cpu使用率的计算设备执行如上述任一项所述的cpu使用率的计算方法。
40、本发明第四方面提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如上述任一项所述的cpu使用率的计算方法。
41、有益效果:本发明提供了一种cpu使用率的计算方法及相关设备,方法包括获取统计周期内cpu所有进程的运行片段的执行信息列表;从执行信息列表中获取得到每条运行片段的执行时刻、执行时长和执行cpu核心;基于所有执行时刻构建得到时刻/cpu核心频率列表并从该列表中获得各个执行cpu核心的工作频率值;从系统硬件配置信息中读取得到各个所述执行cpu核心的额定算力值;再基于每条运行片段执行时刻对应的执行时长、执行cpu核心的工作频率值、执行cpu核心的额定算力值以及执行cpu核心的额定频率值计算并汇总得到cpu总算力消耗值;最后通过cpu总算力消耗值除以cpu的全部算力值获得cpu使用率。本发明的方法适用于不同的平台和设备,数值波动小,更加精准。