本发明涉及计算机内存,特别是涉及一种基于容量的内存调度方法、装置、设备及介质。
背景技术:
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、若是,则切换当前使用的内存类型为所述计算快速连接内存;
27、对应地,当所述调度策略为第二调度策略,且当前使用的内存类型为所述计算快速连接内存时,所述结合所述内存环境变量和所述调度策略,通过非统一内存访问控制工具分配所述计算快速连接内存,包括:
28、基于所述计算快速连接内存的非统一内存访问节点唯一编码,通过所述非统一内存访问控制工具增加所述计算快速连接内存的已使用内存大小和全部已使用内存大小;
29、根据所述计算快速连接内存的已使用内存大小和全部已使用内存大小,判断所述计算快速连接内存的全部物理容量是否用尽;
30、若否,则返回至所述通过所述非统一内存访问控制工具增加所述计算快速连接内存的已使用内存大小和全部已使用内存大小的步骤;
31、若是,则输出内存不足的错误提示并结束。
32、另一方面,当所述调度策略为第三调度策略,且当前使用的内存类型为所述本地内存时,所述结合所述内存环境变量和所述调度策略,通过所述动态内存分配器分配所述本地内存,包括:
33、基于所述本地内存的非统一内存访问节点唯一编码,通过所述动态内存分配器增加所述本地内存的已使用内存大小和全部已使用内存大小;
34、根据所述本地内存的已使用内存大小和全部已使用内存大小,判断所述本地内存的第一预设容量是否用尽;
35、若否,则返回至所述通过所述动态内存分配器增加所述本地内存的已使用内存大小和全部已使用内存大小的步骤;
36、若是,则切换当前使用的内存类型为所述计算快速连接内存,以便于所述计算快速连接内存基于第二预设容量进行内存分配;
37、对应地,当所述调度策略为第三调度策略,且当前使用的内存类型为所述计算快速连接内存时,所述结合所述内存环境变量和所述调度策略,通过非统一内存访问控制工具分配所述计算快速连接内存,包括:
38、基于所述计算快速连接内存的非统一内存访问节点唯一编码,通过所述非统一内存访问控制工具增加所述计算快速连接内存的已使用内存大小和全部已使用内存大小;
39、根据所述计算快速连接内存的已使用内存大小和全部已使用内存大小,判断所述计算快速连接内存的第二预设容量是否用尽;
40、若否,则返回至所述通过所述非统一内存访问控制工具增加所述计算快速连接内存的已使用内存大小和全部已使用内存大小的步骤;
41、若是,则切换当前使用的内存类型为所述本地内存,以便于所述本地内存基于第一预设容量进行内存分配;
42、直至所述本地内存的全部物理容量和所述计算快速连接内存的全部物理容量均用尽,输出内存不足的错误提示并结束。
43、另一方面,在所述通过动态内存分配器获取并初始化预先配置的内存环境变量之前,还包括:
44、通过所述非统一内存访问控制工具,将所述本地内存配置为一个非统一内存访问节点,并将所述计算快速连接内存配置为另一个非统一内存访问节点。
45、另一方面,在输出内存不足的错误提示之后,还包括:
46、分别生成所述本地内存的分配日志和所述计算快速连接内存的分配日志;
47、根据所述本地内存的分配日志、所述计算快速连接内存的分配日志和服务器运行情况对所述调度策略进行调整。
48、为解决上述技术问题,本发明还提供一种基于容量的内存调度装置,包括:
49、获取模块,用于通过动态内存分配器获取并初始化预先配置的内存环境变量;
50、第一确定模块,用于根据所述内存环境变量确定预先生成的对本地内存与计算快速连接内存的调度策略;其中,所述调度策略中包含基于预设的所述本地内存的容量与所述计算快速连接内存的容量的内存分配方式;
51、第二确定模块,用于确定当前使用的内存类型;
52、第一分配模块,用于若当前使用的内存类型为所述本地内存,则结合所述内存环境变量和所述调度策略,通过所述动态内存分配器分配所述本地内存;
53、第二分配模块,用于若当前使用的内存类型为所述计算快速连接内存,则结合所述内存环境变量和所述调度策略,通过非统一内存访问控制工具分配所述计算快速连接内存。
54、为解决上述技术问题,本发明还提供一种基于容量的内存调度设备,包括:
55、存储器,用于存储计算机程序;
56、处理器,用于执行所述计算机程序时实现上述的基于容量的内存调度方法的步骤。
57、为解决上述技术问题,本发明还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现上述的基于容量的内存调度方法的步骤。
58、本发明所提供的一种基于容量的内存调度方法,通过动态内存分配器获取并初始化预先配置的内存环境变量;根据内存环境变量确定预先生成的对本地内存与计算快速连接内存的调度策略;其中,调度策略中包含基于预设的本地内存的容量与计算快速连接内存的容量的内存分配方式;确定当前使用的内存类型;若当前使用的内存类型为本地内存,则结合内存环境变量和调度策略,通过动态内存分配器分配本地内存;若当前使用的内存类型为计算快速连接内存,则结合内存环境变量和调度策略,通过非统一内存访问控制工具分配计算快速连接内存。本发明的有益效果在于,通过预先生成基于容量的本地ddr内存与cxl内存的调度策略,并基于该调度策略对本地ddr内存和cxl内存进行合理分配,不但能够使服务器内混合内存的具体分配过程已知,而且能够使混合内存的使用过程更加平稳,提高了内存所在服务器运行的稳定性。
59、此外,本发明还提供了一种基于容量的内存调度装置、设备及介质,效果同上。
1.一种基于容量的内存调度方法,其特征在于,包括:
2.根据权利要求1所述的基于容量的内存调度方法,其特征在于,所述内存环境变量的配置过程,包括:
3.根据权利要求2所述的基于容量的内存调度方法,其特征在于,当所述调度策略为第一调度策略,且当前使用的内存类型为所述本地内存时,所述结合所述内存环境变量和所述调度策略,通过所述动态内存分配器分配所述本地内存,包括:
4.根据权利要求2所述的基于容量的内存调度方法,其特征在于,当所述调度策略为第二调度策略,且当前使用的内存类型为所述本地内存时,所述结合所述内存环境变量和所述调度策略,通过所述动态内存分配器分配所述本地内存,包括:
5.根据权利要求2所述的基于容量的内存调度方法,其特征在于,当所述调度策略为第三调度策略,且当前使用的内存类型为所述本地内存时,所述结合所述内存环境变量和所述调度策略,通过所述动态内存分配器分配所述本地内存,包括:
6.根据权利要求2所述的基于容量的内存调度方法,其特征在于,在所述通过动态内存分配器获取并初始化预先配置的内存环境变量之前,还包括:
7.根据权利要求3至5任意一项所述的基于容量的内存调度方法,其特征在于,在输出内存不足的错误提示之后,还包括:
8.一种基于容量的内存调度装置,其特征在于,包括:
9.一种基于容量的内存调度设备,其特征在于,包括:
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至7任一项所述的基于容量的内存调度方法的步骤。