内存分配方法、装置和计算设备集群与流程

摘要: 本发明涉及计算机,具体涉及一种内存分配方法、装置和计算设备集群。背景技术:1、在云计算系统中,可以采用虚拟化技术在同一台物理机上运行多个虚拟机,各虚拟机共享物理...
内存分配方法、装置和计算设备集群与流程

本发明涉及计算机,具体涉及一种内存分配方法、装置和计算设备集群。

背景技术:

1、在云计算系统中,可以采用虚拟化技术在同一台物理机上运行多个虚拟机,各虚拟机共享物理机上的cpu、内存资源。由于服务器的cpu和内存配比固定,当服务器剩余内存不足以创建虚拟机时,将出现内存搁浅浪费问题。目前,可以采用分布式内存池化的方式提高集群内存利用率,分布式内存池化中多个物理机互连,任一物理机的内存可以提供给其他的物理机使用。

2、但是,目前亟需一种分布式内存池化方式下的内存分配方式。

技术实现思路

1、本发明实施例提供了一种内存分配方法、装置和计算设备集群,基于当前和未来的内存利用率峰值和内存利用率峰值对应的内存剩余量,选择提供内存的节点,实现内存分配。

2、第一方面,本发明实施例提供了一种内存分配方法,应用于管理节点,管理节点用于管理多个节点,多个节点之间互连,多个节点包括第一节点和多个第二节点;

3、接收第一节点发送的内存申请请求;其中,内存申请请求包括内存申请量;基于多个第二节点中每个第二节点的内存信息,从多个第二节点中确定第三节点;其中,内存信息包括第一时段的内存利用率峰值和内存利用率峰值对应的内存剩余量,第一时段为当前和当前之后的时段,第三节点用于为第一节点提供内存申请量的内存。

4、本方案中,基于当前和未来的内存利用率峰值和内存利用率峰值对应的内存剩余量,选择提供内存的节点,实现内存分配。

5、在一种可能的实现方式中,第三节点为内存剩余量大于内存申请量,且,内存利用率峰值小于或等于预设阈值的第二节点。

6、本方案中,选择内存利用率峰值小于或等于预设阈值的节点提供内存,通过合理设置预设阈值,从而降低提供内存的节点再次申请内存的概率,降低冗余扩展内存的可能性,以及降低内存不足导致的业务性能降低的可能性。

7、在一种可能的实现方式中,第三节点为内存剩余量大于内存申请量,且,内存利用率峰值最小的第二节点。

8、本方案中,选择内存利用率峰值最小的节点提供内存,从而降低提供内存的节点再次申请内存的概率,降低冗余扩展内存的可能性,以及降低内存不足导致的业务性能降低的可能性。

9、在一种可能的实现方式中,基于多个第二节点中每个第二节点的内存信息,从多个第二节点中确定第三节点,包括:基于每个第二节点在第一时段的内存利用率峰值,确定每个第二节点的排序号;其中,排序号和内存利用率峰值为正比关系;基于每个第二节点的排序号和每个第二节点的内存剩余量,从多个第二节点中确定第三节点。

10、在该实现方式的一个例子中,第三节点为内存剩余量大于内存申请量,且,排序号最小的第二节点。

11、本方案中,通过排序号选择内存利用率峰值最小的节点提供内存,从而降低提供内存的节点再次申请内存的概率,降低冗余扩展内存的可能性,以及降低内存不足导致的业务性能降低的可能性。

12、在一种可能的实现方式中,方法还包括:

13、获取每个第二节点在第二时段的运行信息;其中,运行信息包括内存在第二时段的内存使用情况;第二时段为当前和当前之前的时段;基于每个第二节点的运行信息,确定每个第二节点的内存信息。

14、本方案中,通过当前和之前时段的运行信息可以更为准确的预测未来时段的内存利用率峰值。

15、在一种可能的实现方式中,运行信息包括中央处理器cpu在第二时段的使用情况。

16、本方案中,考虑cpu和内存的使用情况,从而更为准确地预测未来时段的内存利用率峰值。

17、在一种可能的实现方式中,内存使用情况包括如下的任一项:

18、内存总量、内存使用量、借出内存总量、借入内存总量、借入内存使用量。

19、在一种可能的实现方式中,内存利用率峰值用于指示第一时段的内存利用率中的最大值;其中,内存利用率用于指示内存使用量和借出内存总量之和与内存总量的比值。

20、第二方面,本发明实施例提供了一种内存分配装置,内存分配装置包括若干个模块,各个模块用于执行本发明实施例第一方面提供的内存分配方法中的各个步骤,关于模块的划分在此不做限制。该内促分配装置各个模块所执行的具体功能及达到的有益效果请参考本发明实施例第一方面提供的内存分配方法的各个步骤的功能,在此不再赘述。

21、示例地,内存分配装置应用于管理节点,管理节点用于管理多个节点,多个节点之间互连,多个节点包括第一节点和多个第二节点;装置包括:

22、接收模块,用于接收第一节点发送的内存申请请求;其中,内存申请请求包括内存申请量;

23、分析模块,用于基于多个第二节点中每个第二节点的内存信息,从多个第二节点中确定第三节点;其中,内存信息包括第一时段的内存利用率峰值和内存利用率峰值对应的内存剩余量,第一时段为当前和当前之后的时段,第三节点用于为第一节点提供内存申请量的内存。

24、在一种可能的实现方式中,第三节点为内存剩余量大于内存申请量,且,内存利用率峰值小于或等于预设阈值的第二节点。

25、在一种可能的实现方式中,第三节点为内存剩余量大于内存申请量,且,内存利用率峰值最小的第二节点。

26、在一种可能的实现方式中,分析模块,用于基于每个第二节点在第一时段的内存利用率峰值,确定每个第二节点的排序号;其中,排序号和内存利用率峰值为正比关系;基于每个第二节点的排序号和每个第二节点的内存剩余量,从多个第二节点中确定第三节点。

27、在该实现方式的一个例子中,第三节点为内存剩余量大于内存申请量,且,排序号最小的第二节点。

28、在一种可能的实现方式中,分析模块,还用于获取每个第二节点在第二时段的运行信息;其中,运行信息包括内存在第二时段的内存使用情况;第二时段为当前和当前之前的时段;基于每个第二节点的运行信息,确定每个第二节点的内存信息。

29、在一种可能的实现方式中,运行信息包括中央处理器cpu在第二时段的使用情况。

30、本方案中,考虑cpu和内存的使用情况,从而更为准确地预测未来时段的内存利用率峰值。

31、在一种可能的实现方式中,内存使用情况包括如下的任一项:

32、内存总量、内存使用量、借出内存总量、借入内存总量、借入内存使用量。

33、在一种可能的实现方式中,内存利用率峰值用于指示第一时段的内存利用率中的最大值;其中,内存利用率用于指示内存使用量和借出内存总量之和与内存总量的比值。

34、第三方面,本发明实施例提供了一种虚拟实例的降频热迁移装置,包括:至少一个存储器,用于存储程序;至少一个处理器,用于执行存储器存储的程序,当存储器存储的程序被执行时,处理器用于执行第一方面中所提供的方法。

35、第四方面,本发明实施例提供了一种虚拟实例的降频热迁移装置,装置运行计算机程序指令,以执行第一方面中所提供的方法。示例性的,该装置可以为芯片,或处理器。

36、在一个例子中,该装置可以包括处理器,该处理器可以与存储器耦合,读取存储器中的指令并根据该指令执行第二方面中所提供的方法,或者执行第一方面中所提供的方法。其中,该存储器可以集成在芯片或处理器中,也可以独立于芯片或处理器之外。

37、第五方面,本发明实施例提供了一种计算设备集群,计算设备集群包括至少一个计算设备,每个计算设备包括处理器和存储器;至少一个计算设备的处理器用于执行至少一个计算设备的存储器中存储的指令,以使得计算设备集群执行如第一方面中所提供的方法。

38、第六方面,本发明实施例提供了一种计算机存储介质,计算机存储介质中存储有指令,当指令在计算机上运行时,使得计算机执行第一方面中所提供的方法。

39、第七方面,本发明实施例提供了一种包含指令的计算机程序产品,当指令在计算机上运行时,使得计算机执行第一方面中所提供的方法。