本发明涉及计算机内存,特别是涉及一种基于带宽的内存调度方法、装置、设备及介质。
背景技术:
1、计算快速连接(compute express link,cxl)是一种全新的设备互连技术标准。cxl不仅支持内存子系统的容量和带宽扩展,而且可用于异构处理器及外围设备(如图形处理器和智能网卡)之间互连,实现计算资源和内存资源解耦及池化。
2、当前,服务器上通常会混合使用普通的双倍速率同步动态随机存储器(doubledata rate sdram,ddr)内存和cxl内存,cxl内存的时延是ddr内存的两倍以上。当用户向操作系统申请内存空间时,操作系统并不会区分普通ddr内存和cxl内存,即无法确定拿到内存是ddr内存还是cxl内存。从总体上看,用户在访问内存的过程中访问速度时快时慢,极大地影响了服务器运行的稳定性。
3、鉴于上述问题,如何解决当前的混合内存使用方式影响服务器运行稳定性,是本领域技术人员亟待解决的问题。
技术实现思路
1、本发明的目的是提供一种基于带宽的内存调度方法、装置、设备及介质,以解决当前的混合内存使用方式影响服务器运行稳定性的问题。
2、为解决上述技术问题,本发明提供一种基于带宽的内存调度方法,包括:
3、通过动态内存分配器获取并初始化预先配置的内存环境变量;
4、通过性能计数器监控器和内存延迟检测工具确定当前本地内存的带宽占用率;
5、获取静态变量,并根据所述静态变量确定当前使用的内存类型;
6、根据当前所述本地内存的带宽占用率和所述内存类型判断是否满足预设条件;
7、若是,则根据所述内存环境变量和所述内存类型,对所述本地内存和计算快速连接内存进行内存分配。
8、一方面,所述通过性能计数器监控器和内存延迟检测工具确定当前本地内存的带宽占用率,包括:
9、通过监控主线程启动监控线程函数,以启动所述性能计数器监控器;
10、基于第一预设周期调用带宽获取函数,以得到所述本地内存的实时带宽;其中,所述实时带宽包括实时读带宽、实时写带宽以及实时读和写带宽;
11、将所述本地内存的所述实时带宽写入第一数组中;
12、基于第二预设周期,通过测量内存带宽线程执行所述内存延迟检测工具的命令行,以得到所述本地内存的最大带宽;其中,所述最大带宽包括最大读带宽、最大写带宽以及最大读和写带宽;
13、将所述本地内存的所述最大带宽写入第二数组中;
14、通过策略处理逻辑线程,根据所述第一数组中的数据和所述第二数组中的数据确定当前所述本地内存的带宽占用率。
15、另一方面,所述根据当前所述本地内存的带宽占用率和所述内存类型判断是否满足预设条件,包括:
16、当所述内存类型为所述本地内存时,判断当前所述本地内存的带宽占用率是否大于第一阈值;
17、若当前所述本地内存的带宽占用率大于所述第一阈值,则确认当前满足第一预设条件;
18、将所述内存分配配置文件的值更改为表征使用所述计算快速连接内存的第一数值;
19、若当前所述本地内存的带宽占用率不大于所述第一阈值,则确认当前不满足所述第一预设条件;
20、当所述内存类型为所述计算快速连接内存时,判断当前所述本地内存的带宽占用率是否小于第二阈值;
21、若当前所述本地内存的带宽占用率小于所述第二阈值,则确认当前满足第二预设条件;
22、将所述内存分配配置文件的值更改为表征使用所述本地内存的所述第二数值;
23、若当前所述本地内存的带宽占用率不小于所述第二阈值,则确认当前不满足所述第二预设条件;
24、其中,所述第一阈值大于所述第二阈值。
25、另一方面,所述根据所述内存环境变量和所述内存类型,对所述本地内存和计算快速连接内存进行内存分配,包括:
26、当所述内存分配配置文件的值为表征使用所述计算快速连接内存的所述第一数值时,通过所述动态内存分配器将所述静态变量修改为0;
27、获取所述内存环境变量中所述计算快速连接内存的非统一内存访问节点唯一编码;
28、基于所述静态变量和所述计算快速连接内存的非统一内存访问节点唯一编码,通过非统一内存访问控制工具分配所述计算快速连接内存。
29、另一方面,所述根据所述内存环境变量和所述内存类型,对所述本地内存和计算快速连接内存进行内存分配,包括:
30、当所述内存分配配置文件的值为表征使用所述本地内存的所述第二数值时,通过所述动态内存分配器将所述静态变量修改为1;
31、基于所述静态变量,通过所述动态内存分配器分配所述本地内存。
32、另一方面,在所述通过动态内存分配器获取并初始化预先配置的内存环境变量之前,还包括:
33、通过非统一内存访问控制工具,将所述本地内存配置为一个非统一内存访问节点,并将所述计算快速连接内存配置为另一个非统一内存访问节点。
34、另一方面,还包括:
35、监测所述计算快速连接内存的带宽占用率;
36、当所述计算快速连接内存的带宽总使用率大于第三阈值时,通过所述动态内存分配器分配所述本地内存。
37、为解决上述技术问题,本发明还提供一种基于带宽的内存调度装置,包括:
38、获取模块,用于通过动态内存分配器获取并初始化预先配置的内存环境变量;
39、第一确定模块,用于通过性能计数器监控器和内存延迟检测工具确定当前本地内存的带宽占用率;
40、第二确定模块,用于获取静态变量,并根据所述静态变量确定当前使用的内存类型;
41、判断模块,用于根据当前所述本地内存的带宽占用率和所述内存类型判断是否满足预设条件;若是,则触发分配模块;
42、所述分配模块,用于根据所述内存环境变量和所述内存类型,对所述本地内存和计算快速连接内存进行内存分配。
43、为解决上述技术问题,本发明还提供一种基于带宽的内存调度设备,包括:
44、存储器,用于存储计算机程序;
45、处理器,用于执行所述计算机程序时实现上述的基于带宽的内存调度方法的步骤。
46、为解决上述技术问题,本发明还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现上述的基于带宽的内存调度方法的步骤。
47、本发明所提供的基于带宽的内存调度方法,具体通过动态内存分配器获取并初始化预先配置的内存环境变量;通过性能计数器监控器和内存延迟检测工具确定当前本地内存的带宽占用率;获取静态变量,并根据静态变量确定当前使用的内存类型;根据当前本地内存的带宽占用率和内存类型判断是否满足预设条件;若是,则根据内存环境变量和内存类型,对本地内存和计算快速连接内存进行内存分配。本发明的有益效果在于,通过确定当前本地内存的带宽占用率,基于本地内存的带宽占用率和内存类型作为内存分配的前提条件,在满足预设条件时,根据内存环境变量和内存类型对本地ddr内存和cxl内存进行分配,不但能够使服务器内混合内存的具体分配过程已知,而且向用户提供了cxl内存的带宽扩展调度能力,使得混合内存的使用过程更加平稳,提高了内存所在服务器运行的稳定性。
48、此外,本发明还提供了一种基于带宽的内存调度装置、设备及介质,效果同上。
1.一种基于带宽的内存调度方法,其特征在于,包括:
2.根据权利要求1所述的基于带宽的内存调度方法,其特征在于,所述通过性能计数器监控器和内存延迟检测工具确定当前本地内存的带宽占用率,包括:
3.根据权利要求1所述的基于带宽的内存调度方法,其特征在于,所述根据当前所述本地内存的带宽占用率和所述内存类型判断是否满足预设条件,包括:
4.根据权利要求3所述的基于带宽的内存调度方法,其特征在于,所述根据所述内存环境变量和所述内存类型,对所述本地内存和计算快速连接内存进行内存分配,包括:
5.根据权利要求3所述的基于带宽的内存调度方法,其特征在于,所述根据所述内存环境变量和所述内存类型,对所述本地内存和计算快速连接内存进行内存分配,包括:
6.根据权利要求1所述的基于带宽的内存调度方法,其特征在于,在所述通过动态内存分配器获取并初始化预先配置的内存环境变量之前,还包括:
7.根据权利要求3或4所述的基于带宽的内存调度方法,其特征在于,还包括:
8.一种基于带宽的内存调度装置,其特征在于,包括:
9.一种基于带宽的内存调度设备,其特征在于,包括:
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至7任一项所述的基于带宽的内存调度方法的步骤。