CN104750557B - 一种内存管理方法和内存管理装置 - Google Patents
一种内存管理方法和内存管理装置 Download PDFInfo
- Publication number
- CN104750557B CN104750557B CN201310740508.0A CN201310740508A CN104750557B CN 104750557 B CN104750557 B CN 104750557B CN 201310740508 A CN201310740508 A CN 201310740508A CN 104750557 B CN104750557 B CN 104750557B
- Authority
- CN
- China
- Prior art keywords
- memory
- virtual
- virtual machine
- memory access
- attribute
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明实施例公开了一种内存管理方法和内存管理装置,用于提高数据中心系统的内存利用效率。本发明实施例方法包括:接收数据中心系统中的虚拟机发送的内存请求信息,所述内存请求信息包括:在所述虚拟机上运行的应用程序对内存的需求信息;根据所述应用程序对内存的需求信息获取所述虚拟机的访存属性,其中,针对不同访存属性的虚拟机使用不同位宽的虚拟内存通道,所述不同位宽的虚拟内存通道中各个虚拟内存通道映射的物理内存的地址空间容量不同;根据虚拟内存通道和物理内存之间的映射关系向所述应用程序分配与所述虚拟机的访存属性相对应的物理内存。
Description
技术领域
本发明涉及计算机技术领域,尤其涉及一种内存管理方法和内存管理装置。
背景技术
内存(Memory)是计算机中重要的部件之一,计算机中所有程序的运行都是在内存中进行的,因此内存的性能对计算机的影响非常大。内存也被称为内存储器,其作用是用于暂时存放中央处理器(Central Processing Unit,CPU)中的运算数据,以及与硬盘等外部存储器交换的数据。计算机在运行中,CPU把需要运算的数据调到内存中进行运算,当运算完成后CPU再将结果传送出来,内存的运行也决定了计算机的稳定运行。
新兴的数据中心系统与传统的桌面系统有着截然不同的特征,在新兴的数据中心系统中,对内存分配的要求更高,例如要求更高的带宽利用率以及减少不必要的功耗浪费。
现有技术中存在一种基于分块实现的内存分配方法,即将内存资源均分成若干块,当需要内存资源时,获取一个资源块,使用完毕之后再将资源块释放,归还给内存。由于当前的数据中心系统中服务器的访存特点与以往的计算机截然不同,如果按照现有技术的内存分配方法来分配内存,则在数据中心系统中服务器上会存在如何确定资源块大小的问题,如果资源块过大,则利用率下降,如果资源块过小,则无法满足分配的需求,如果数据中心系统中服务器沿用以往的内存分配策略会导致数据中心系统的内存利用效率低下。截至目前,还没有针对数据中心系统中服务器的内存分配策略。
发明内容
本发明实施例提供了一种内存管理方法和内存管理装置,用于提高数据中心系统的内存利用效率。
为解决上述技术问题,本发明实施例提供以下技术方案:
第一方面,本发明实施例提供一种内存管理方法,包括:
接收数据中心系统中的虚拟机发送的内存请求信息,所述内存请求信息包括:在所述虚拟机上运行的应用程序对内存的需求信息;
根据所述应用程序对内存的需求信息获取所述虚拟机的访存属性,其中,针对不同访存属性的虚拟机使用不同位宽的虚拟内存通道,所述不同位宽的虚拟内存通道中各个虚拟内存通道映射的物理内存的地址空间容量不同;
根据虚拟内存通道和物理内存之间的映射关系向所述应用程序分配与所述虚拟机的访存属性相对应的物理内存。
结合第一方面,在第一方面的第一种可能的实现方式中,所述接收虚拟机发送的内存请求信息之前,还包括:
获取所述数据中心系统中创建的多个虚拟机;
对创建的多个虚拟机的访存属性进行归类,得到N种访存属性的虚拟机,其中,所述数据中心系统中虚拟机的访存属性可分为N种类型,所述N为大于1的自然数;
为所述N种访存属性的虚拟机分配N种位宽的虚拟内存通道,其中,每种访存属性的虚拟机分配的虚拟内存通道的位宽不同;
分别建立每种位宽的虚拟内存通道与所述数据中心系统中的物理内存之间的映射关系,其中,位宽越宽的虚拟内存通道映射到的物理内存的地址空间也越大。
结合第一方面的第一种可能的实现方式,在第一方面的第二种可能的实现方式中,所述分别建立每种位宽的虚拟内存通道与所述数据中心系统中的物理内存之间的映射关系,包括:
将所述数据中心系统中的物理内存划分为M个内存颗粒,其中每个内存颗粒对应的地址空间容量相同,所述M为大于所述N的自然数;
分别建立每种位宽的虚拟内存通道与所述M个内存颗粒中的至少一个内存颗粒之间的映射关系,其中,位宽越宽的虚拟内存通道映射到的内存颗粒个数也越多。
结合第一方面的第一种可能的实现方式,在第一方面的第三种可能的实现方式中,所述分别建立每种位宽的虚拟内存通道与所述数据中心系统中的物理内存之间的映射关系,包括:
获取所述数据中心系统中的N种访存属性的虚拟机的历史内存分配信息,所述历史内存分配信息包括:所述N种访存属性的虚拟机在历史时间段内运行各自的应用程序时分配的物理内存的地址空间容量;
根据所述N种访存属性的虚拟机的历史内存分配信息分别获取所述N种访存属性的虚拟机在所述历史时间段内使用的虚拟内存通道映射到的物理内存的地址空间容量;
根据所述N种访存属性的虚拟机在所述历史时间段内使用的虚拟内存通道映射到的物理内存的地址空间容量,分别建立每种位宽的虚拟内存通道与所述数据中心系统中的物理内存的地址空间容量之间的映射关系。
结合第一方面的第一种可能的实现方式,在第一方面的第四种可能的实现方式中,所述分别建立每种位宽的虚拟内存通道与所述数据中心系统中的物理内存之间的映射关系,包括:
计算所述N种位宽的虚拟内存通道中每种位宽的虚拟内存通道之间的位宽比例;
按照所述位宽比例分别建立每种位宽的虚拟内存通道与所述数据中心系统中的物理内存的地址空间容量之间的映射关系,其中,每种位宽的虚拟内存通道分别映射的物理内存的地址空间容量之间的容量比例和所述位宽比例相同或正相关。
结合第一方面或第一方面的第一种或第二种或第三种或第四种可能的实现方式,在第一方面的第五种可能的实现方式中,所述根据虚拟内存通道和物理内存之间的映射关系向所述应用程序分配与所述虚拟机的访存属性相对应的物理内存之后,还包括:
根据所述虚拟机使用分配给所述应用程序的物理内存运行所述应用程序的运行情况,对所述数据中心系统中虚拟内存通道和物理内存之间的映射关系进行修正。
结合第一方面或第一方面的第一种或第二种或第三种或第四种可能的实现方式,在第一方面的第六种可能的实现方式中,所述根据虚拟内存通道和物理内存之间的映射关系向所述应用程序分配与所述虚拟机的访存属性相对应的物理内存之后,还包括:
当在所述虚拟机上运行应用程序时,通过所述虚拟机使用的虚拟内存通道响应所述虚拟机的读写请求。
结合第一方面,在第一方面的第七种可能的实现方式中,
所述数据中心系统中的虚拟机的访存属性为以下属性中的一种:访存要求为高带宽、访存要求为低带宽;
或,所述数据中心系统中的虚拟机的访存属性为以下属性中的一种:访存要求为延迟敏感、访存要求为延迟不敏感;
或,所述数据中心系统中的虚拟机的访存属性为以下属性中的一种:访存要求为高带宽且延迟敏感、访存要求为高带宽且延迟不敏感、访问要求为低带宽且延迟敏感、访问要求为低带宽且延迟不敏感。
结合第一方面,在第一方面的第八种可能的实现方式中,
所述数据中心系统中的虚拟机的访存属性为以下属性中的一种:访存要求为高带宽、访存要求为中带宽、访存要求为低带宽;
或,所述数据中心系统中的虚拟机的访存属性为以下属性中的一种:访存要求为延迟敏感、访存要求为延迟较敏感、访存要求为延迟不敏感;
或,所述数据中心系统中的虚拟机的访存属性为以下属性中的一种:第一属性、第二属性、第三属性、第四属性、第五属性,其中,
所述第一属性包括:访存要求为高带宽且延迟敏感;
所述第二属性包括:访存要求为高带宽且延迟较敏感,或中带宽且延迟敏;
所述第三属性包括:访存要求为中带宽且延迟较敏感,或低带宽且延迟敏感,或高带宽且延迟不敏感;
所述第四属性包括:访存要求为中带宽且延迟不敏感,或低带宽且延迟较敏感;
所述第五属性包括:访存要求为低带宽且延迟不敏感。
第二方面,本发明实施例还提供一种内存管理装置,包括:
信息接收模块,用于接收数据中心系统中的虚拟机发送的内存请求信息,所述内存请求信息包括:在所述虚拟机上运行的应用程序对内存的需求信息;
属性获取模块,用于根据所述信息接收模块接收到的所述应用程序对内存的需求信息获取所述虚拟机的访存属性,其中,针对不同访存属性的虚拟机使用不同位宽的虚拟内存通道,所述不同位宽的虚拟内存通道中各个虚拟内存通道映射的物理内存的地址空间容量不同;
内存分配模块,用于根据虚拟内存通道和物理内存之间的映射关系向所述应用程序分配与所述属性获取模块获取到的所述虚拟机的访存属性相对应的物理内存。
结合第二方面,在第二方面的第一种可能的实现方式中,所述内存管理装置,还包括:
虚拟机获取模块,用于在所述信息接收模块接收虚拟机发送的内存请求信息之前,获取所述数据中心系统中创建的多个虚拟机;
属性归类模块,用于对所述虚拟机获取模块获取到的所述数据中心系统中创建的多个虚拟机的访存属性进行归类,得到N种访存属性的虚拟机,其中,所述数据中心系统中虚拟机的访存属性可分为N种类型,所述N为大于1的自然数;
通道分配模块,用于为所述属性归类模块归类出的N种访存属性的虚拟机分配N种位宽的虚拟内存通道,其中,每种访存属性的虚拟机分配的虚拟内存通道的位宽不同;
映射建立模块,用于分别建立每种位宽的虚拟内存通道与所述数据中心系统中的物理内存之间的映射关系,其中,位宽越宽的虚拟内存通道映射到的物理内存的地址空间也越大。
结合第二方面的第一种可能的实现方式,在第二方面的第二种可能的实现方式中,所述映射建立模块,包括:
内存划分子模块,用于将所述数据中心系统中的物理内存划分为M个内存颗粒,其中每个内存颗粒对应的地址空间容量相同,所述M为大于所述N的自然数;
第一映射建立子模块,用于分别建立每种位宽的虚拟内存通道与所述M个内存颗粒中的至少一个内存颗粒之间的映射关系,其中,位宽越宽的虚拟内存通道映射到的内存颗粒个数也越多。
结合第二方面的第一种可能的实现方式,在第二方面的第三种可能的实现方式中,所述映射建立模块,包括:
信息获取子模块,用于获取所述数据中心系统中的N种访存属性的虚拟机的历史内存分配信息,所述历史内存分配信息包括:所述N种访存属性的虚拟机在历史时间段内运行各自的应用程序时分配的物理内存的地址空间容量;
容量获取子模块,用于根据所述N种访存属性的虚拟机的历史内存分配信息分别获取所述N种访存属性的虚拟机在所述历史时间段内使用的虚拟内存通道映射到的物理内存的地址空间容量;
第二映射建立子模块,用于根据所述N种访存属性的虚拟机在所述历史时间段内使用的虚拟内存通道映射到的物理内存的地址空间容量,分别建立每种位宽的虚拟内存通道与所述数据中心系统中的物理内存的地址空间容量之间的映射关系。
结合第二方面的第一种可能的实现方式,在第二方面的第四种可能的实现方式中,所述映射建立模块,包括:
位宽比例计算模块,用于计算所述N种位宽的虚拟内存通道中每种位宽的虚拟内存通道之间的位宽比例;
第三映射建立子模块,用于按照所述位宽比例分别建立每种位宽的虚拟内存通道与所述数据中心系统中的物理内存的地址空间容量之间的映射关系,其中,每种位宽的虚拟内存通道分别映射的物理内存的地址空间容量之间的容量比例和所述位宽比例相同或正相关。
结合第二方面或第二方面的第一种或第二种或第三种或第四种可能的实现方式,在第二方面的第五种可能的实现方式中,所述内存管理装置,还包括:
映射修正模块,用于所述内存分配模块根据虚拟内存通道和物理内存之间的映射关系向所述应用程序分配与所述虚拟机的访存属性相对应的物理内存之后,根据所述虚拟机使用分配给所述应用程序的物理内存运行所述应用程序的运行情况,对所述数据中心系统中虚拟内存通道和物理内存之间的映射关系进行修正。
结合第二方面或第二方面的第一种或第二种或第三种或第四种可能的实现方式,在第二方面的第六种可能的实现方式中,所述内存管理装置,还包括:
请求响应模块,用于所述内存分配模块根据虚拟内存通道和物理内存之间的映射关系向所述应用程序分配与所述虚拟机的访存属性相对应的物理内存之后,当在所述虚拟机上运行应用程序时,通过所述虚拟机使用的虚拟内存通道响应所述虚拟机的读写请求。
结合第二方面,在第二方面的第七种可能的实现方式中,所述属性获取模块获取到的所述虚拟机的访存属性为以下属性中的一种:访存要求为高带宽、访存要求为低带宽;
或,所述属性获取模块获取到的所述虚拟机的访存属性为以下属性中的一种:访存要求为延迟敏感、访存要求为延迟不敏感;
或,所述属性获取模块获取到的所述虚拟机的访存属性为以下属性中的一种:访存要求为高带宽且延迟敏感、访存要求为高带宽且延迟不敏感、访问要求为低带宽且延迟敏感、访问要求为低带宽且延迟不敏感。
结合第二方面,在第二方面的第八种可能的实现方式中,所述属性获取模块获取到的所述虚拟机的访存属性为以下属性中的一种:访存要求为高带宽、访存要求为中带宽、访存要求为低带宽;
或,所述属性获取模块获取到的所述虚拟机的访存属性为以下属性中的一种:访存要求为延迟敏感、访存要求为延迟较敏感、访存要求为延迟不敏感;
或,所述属性获取模块获取到的所述虚拟机的访存属性为以下属性中的一种:第一属性、第二属性、第三属性、第四属性、第五属性,其中,
所述第一属性包括:访存要求为高带宽且延迟敏感;
所述第二属性包括:访存要求为高带宽且延迟较敏感,或中带宽且延迟敏;
所述第三属性包括:访存要求为中带宽且延迟较敏感,或低带宽且延迟敏感,或高带宽且延迟不敏感;
所述第四属性包括:访存要求为中带宽且延迟不敏感,或低带宽且延迟较敏感;
所述第五属性包括:访存要求为低带宽且延迟不敏感。
从以上技术方案可以看出,本发明实施例具有以下优点:
在本发明实施例中,首先接收数据中心系统中的虚拟机发送的内存请求信息,根据应用程序对内存的需求信息获取上述虚拟机的访存属性,根据虚拟内存通道和物理内存之间的映射关系向应用程序分配与上述虚拟机的访存属性相对应的物理内存。本发明实施例中由于针对不同访存属性的虚拟机使用的是不同位宽的虚拟内存通道,且不同位宽的虚拟内存通道中各个虚拟内存通道映射的物理内存的地址空间容量不同,故可以针对虚拟机的访存属性来为应用程序分配与该访存属性相对应的物理内存的地址空间容量,从而避免为应用程序分配内存资源的资源块时存在的盲目性,由于针对虚拟机的不同访存属性分配了不同位宽的虚拟内存通道,通过虚拟内存通道和物理内存的映射关系为应用程序分配了与虚拟机的访存属性相对应的物理内存的地址空间,从而可以满足不同的应用程序对访存服务质量的要求,提高了对数据中心系统的内存利用效率。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域的技术人员来讲,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的一种内存管理方法的流程方框示意图;
图2-a为本发明实施例提供的将虚拟内存通道映射到数据中心系统中的物理内存的地址空间的实现方式示意图;
图2-b为本发明实施例提供的一种将位虚拟内存通道映射到数据中心系统中的物理内存的内存颗粒的实现方式示意图;
图2-c为本发明实施例提供的另一种将位虚拟内存通道映射到数据中心系统中的物理内存的内存颗粒的实现方式示意图;
图3-a为本发明实施例提供的一种内存管理装置的组成结构示意图;
图3-b为本发明实施例提供的另一种内存管理装置的组成结构示意图;
图3-c为本发明实施例提供的一种映射建立模块的组成结构示意图;
图3-d为本发明实施例提供的另一种映射建立模块的组成结构示意图;
图3-e为本发明实施例提供的另一种映射建立模块的组成结构示意图;
图3-f为本发明实施例提供的另一种内存管理装置的组成结构示意图;
图3-g为本发明实施例提供的另一种内存管理装置的组成结构示意图;
图4为本发明实施例提供的一种内存管理装置的组成结构示意图。
具体实施方式
本发明实施例提供了一种内存管理方法和内存管理装置,用于提高数据中心系统的内存利用效率。
为使得本发明的发明目的、特征、优点能够更加的明显和易懂,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,下面所描述的实施例仅仅是本发明一部分实施例,而非全部实施例。基于本发明中的实施例,本领域的技术人员所获得的所有其他实施例,都属于本发明保护的范围。
本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的术语在适当情况下可以互换,这仅仅是描述本发明的实施例中对相同属性的对象在描述时所采用的区分方式。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,以便包含一系列单元的过程、方法、系统、产品或设备不必限于那些单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它单元。
以下分别进行详细说明。
本发明内存管理方法的一个实施例,可应用于数据中心系统中,该方法可包括:接收数据中心系统中的虚拟机发送的内存请求信息,其中,内存请求信息包括:在上述虚拟机上运行的应用程序对内存的需求信息;根据上述应用程序对内存的需求信息获取虚拟机的访存属性,其中,针对不同访存属性的虚拟机使用不同位宽的虚拟内存通道,不同位宽的虚拟内存通道中各个虚拟内存通道映射的物理内存的地址空间容量不同;根据虚拟内存通道和物理内存之间的映射关系向上述应用程序分配与虚拟机的访存属性相对应的物理内存。
请参阅图1所示,本发明一个实施例提供的内存管理方法,可以包括:
101、接收数据中心系统中的虚拟机发送的内存请求信息。
其中,内存请求信息包括:在上述虚拟机(Virtual Machine,VM)上运行的应用程序对内存的需求信息。
在本发明实施例中,数据中心系统中创建有虚拟机,虚拟机上运行有应用程序,通过在虚拟机上运行的应用程序的不同,可以实现网络搜索、桌面云等多种应用功能,虚拟机上运行的应用程序通常会向虚拟机发送内存请求信息,则虚拟机会向数据中心系统中的内存管理装置发送内存请求信息,以请求内存管理装置控制内存控制器来为应用程序请求分配物理内存,从而虚拟机就能够使用分配的物理内存来运行应用程序。本发明实施例中以一个虚拟机向内存管理装置发送内存请求信息为例来对本发明的内存管理方法来进行详细说明,在实际应用中也可以有多个虚拟机分别向内存管理装置发送内存请求信息,则内存管理装置同样可以按照此处对一个虚拟机请求分配物理内存的实现方式来对多个虚拟机的请求进行物理内存的分配,其中,内存请求信息也可以称为内存分配请求信息,在内存请求信息中包括有在虚拟机上运行的应用程序对内存的需求信息,并且应用程序对内存的需求信息主要可以指的是该应用程序需求的物理内存的大小,即应用程序需要多大的物理内存,通常物理内存的大小可以通过物理内存的地址空间的容量来表示,例如对于数据缓存的应用程序来说,当需要缓存32字节的数据时,其需求的物理内存的地址空间大小就是32个字节。另外,在本发明的一些实施例中,应用程序对内存的需求信息中除了包括该应用程序需求的物理内存的大小,还可以包括应用程序需求的物理内存的类型,例如需求信息中包括应用程序需求的是内核态物理内存还是用户态内存,又如,需求信息中包括应用程序需求的是专用物理内存还是通用物理内存。在本发明的另一些实施例中,应用程序对内存的需求信息中除了包括该应用程序需求的物理内存的大小,还可以包括应用程序的特点,例如需求信息中可以包括应用程序对内存的需求是否对延迟敏感,即该应用程序是需要很小延迟的,还是可以容忍延迟的。在实际应用中,应用程序对内存的需求信息还可以根据具体场景来携带具体的内容,应用程序根据对内存的需求信息向虚拟机发送内存请求信息,由虚拟机对内存请求信息进行处理后发送给内存管理装置,故内存管理装置可以获取到在虚拟机上运行的应用程序对内存的需求信息。
102、根据上述应用程序对内存的需求信息获取虚拟机的访存属性。
其中,针对不同访存属性的虚拟机使用不同位宽的虚拟内存通道,不同位宽的虚拟内存通道中各个虚拟内存通道映射的物理内存的地址空间容量不同。
在本发明实施例中,接收到数据中心系统中的虚拟机发送的内存请求信息之后,基于虚拟机上运行的应用程序对内存的需求信息获取虚拟机的访存属性,例如可以根据应用程序需求的物理内存的大小来确定虚拟机的访存属性,也可以根据应用程序请求分配物理内存时对内存的时延要求以及所请求的物理内存的地址空间容量获取发送内存请求信息的虚拟机的访存属性,在实际应用中根据应用程序对内存的需求信息获取虚拟机的访存属性可以有多种实现方式,根据应用程序对内存的不同需求从而可以确定出虚拟机的访存属性。其中,虚拟机的访存属性指的是在虚拟机上运行应用程序时虚拟机在访问存储方面对内存要求的属性体现,虚拟机的访存属性与在该虚拟机上运行的应用程序的属性特点相一致,故在不同虚拟机上执行不同属性特点的应用程序时虚拟机的访存属性也不相同。
在本发明实施例中,数据中心系统中的虚拟机在创建时,虚拟机的用途通常已经确定了,基于虚拟机上运行的应用程序的特点以及对内存的需求情况就可以确定虚拟机通常用于执行哪种类型的应用程序,例如,在云数据系统中服务器上的虚拟机任务一般都比较固定,如通常A类型的虚拟机用于做网络搜索,B类型的虚拟机用于做数据计算,故可以用虚拟机为单位来标识执行各类应用程序时的访存特点。故本发明实施例中对数据中心系统中创建的虚拟机按照访存属性可以划分为多种类型的虚拟机,各种类型的虚拟机分别具有不同的访存属性,其中虚拟机的访存属性也可以称之为虚拟机的访存类别,虚拟机的访存属性与在该虚拟机上运行的应用程序的属性特点相一致,故在不同虚拟机上执行不同属性特点的应用程序时虚拟机的访存属性也不相同。
在本发明实施例中,针对不同访存属性的虚拟机使用不同位宽的虚拟内存通道,并且不同位宽的虚拟内存通道中各个虚拟内存通道映射的物理内存的地址空间容量不同。也就是说,对于单个的虚拟内存通道而言,若位宽不同,则映射到的物理内存的地址空间容量也是不同的,即对于两个位宽不同的虚拟内存通道,则这两个虚拟内存通道映射的物理内存的地址空间容量也是不同的。其中,地址空间容量的含义也可以表述为地址空间大小或地址区间,例如,若地址空间容量为1G,则含义为地址空间的大小为1G。数据中心系统中创建的虚拟机的访存属性可以由应用程序对内存的需求来决定,并且划分虚拟机的访存属性根据在虚拟机上运行的应用程序的不同属性特点也是不同的。接下来进行举例说明:
步骤101接收虚拟机发送的内存请求信息之前,本发明实施例还可以包括如下步骤还包括:
A1、获取数据中心系统中创建的多个虚拟机;
A2、对创建的多个虚拟机的访存属性进行归类,得到N种访存属性的虚拟机,其中,数据中心系统中虚拟机的访存属性可分为N种类型,N为大于1的自然数;
A3、为N种访存属性的虚拟机分配N种位宽的虚拟内存通道,其中,每种访存属性的虚拟机分配的虚拟内存通道的位宽不同;
A4、分别建立每种位宽的虚拟内存通道与数据中心系统中的物理内存之间的映射关系,其中,位宽越宽的虚拟内存通道映射到的物理内存的地址空间也越大。
对于步骤A1,数据中心系统中创建有虚拟机,首先可以从数据中心系统中获取创建的多个虚拟机,当然也可以从数据中心系统中获取到创建的所有虚拟机,步骤A1中从数据中心系统中获取到的虚拟机是对虚拟机按照访存属性进行归类时的样本数据,对于采集到的样本数据进行归类,即步骤A2中对获取到的多个虚拟机的访存属性进行归类,共划分出N种访存属性的虚拟机,故可以认为数据中心系统中虚拟机的访存属性可分为N种类型,每种类型的虚拟机具有一种访存属性,其中N的取值为大于1的自然数即可,即数据中心系统中创建的虚拟机可以有两种访存属性,也可以有三种访存属性等等,若认为N的取值为1,即表示数据中心系统中将所有的虚拟机都划分为相同的访存属性,当数据中心系统中所有虚拟机都是同一个访存属性时,那么和数据中心系统中没有对虚拟机按照访存属性进行归类是一样的。需要说明的是,本发明实施例中将数据中心系统中虚拟机的访存属性归类为N种类型,但是并不是说数据中心系统中按照访存属性进行归类之后就不可能只存在1种访存属性的虚拟机,极端的情况下,例如虽然划分的虚拟机的访存属性有多种,但是当前的数据中心系统中创建的虚拟机都是具有相同的访存属性也是允许的,此处仅作说明,并不作为对本发明的限定。
在本发明的一些实施例中,根据应用程序对内存的需求信息获取虚拟机的访存属性,其中,数据中心系统中的虚拟机的访存属性为以下属性中的一种:访存要求为高带宽、访存要求为低带宽;
或,数据中心系统中的虚拟机的访存属性为以下属性中的一种:访存要求为延迟敏感、访存要求为延迟不敏感;
或,数据中心系统中的虚拟机的访存属性为以下属性中的一种:访存要求为高带宽且延迟敏感、访存要求为高带宽且延迟不敏感、访问要求为低带宽且延迟敏感、访问要求为低带宽且延迟不敏感。
其中,虚拟机上运行的应用程序对内存的需求信息中包括应用程序请求分配的物理内存的大小,则可以根据应用程序请求分配的物理内存的大小将数据中心系统中的所有虚拟机的访存属性归类为两种访存属性的虚拟机,其中访存属性为以下两种属性:访存要求为高带宽、访存要求为低带宽,其中带宽的高低可以通过对带宽取值的大小划定阈值的方式来表示哪一种带宽要求为高带宽,哪一种带宽要求为低带宽。
其中,虚拟机上运行的应用程序对内存的需求信息中包括应用程序对请求分配的物理内存的时延要求,则可以根据应用程序对请求分配的物理内存的时延要求将数据中心系统中的所有虚拟机的访存属性归类为两种访存属性的虚拟机,其中访存属性为以下两种属性:访存要求为延迟敏感、访存要求为延迟不敏感,其中延迟敏感还是延迟不敏感可以通过对时延的大小划定阈值的方式来表示访存要求的时延大于阈值的为延迟不敏感,访存要求的时延小于或等于阈值的为延迟敏感。
其中,虚拟机上运行的应用程序对内存的需求信息中包括应用程序请求分配的物理内存的大小和对请求分配的物理内存的时延要求,则可以根据应用程序请求分配的物理内存的大小将数据中心系统中的所有虚拟机的访存属性归类为四种访存属性的虚拟机,其中访存属性为以下四种属性:访存要求为高带宽且延迟敏感、访存要求为高带宽且延迟不敏感、访问要求为低带宽且延迟敏感、访问要求为低带宽且延迟不敏感。则这四种访存属性分别对应四种类型的虚拟机。
需要说明的是,上述实施例中,对于带宽和延迟都分别划分为两个部分,对于带宽划分为高带宽和低带宽,对于延迟划分为延迟敏感和不敏感,通过对带宽和延迟的不同取值情况,对虚拟机的访存属性进行划分,则按照此处描述的对带宽和延迟的划分方式,还可以将带宽划分为高带宽、中带宽、低带宽,将延迟划分为延迟敏感、延迟较敏感、延迟不敏感,也可以将带宽和延迟分别划分为四个、五个部分等,通过这些不同部分的划分,都可以将数据中心系统中虚拟机的访存属性划分为多种不同的访存属性,举例说明如下:
数据中心系统中的虚拟机的访存属性为以下属性中的一种:访存要求为高带宽、访存要求为中带宽、访存要求为低带宽;
或,数据中心系统中的虚拟机的访存属性为以下属性中的一种:访存要求为延迟敏感、访存要求为延迟较敏感、访存要求为延迟不敏感;
或,数据中心系统中的虚拟机的访存属性为以下属性中的一种:第一属性、第二属性、第三属性、第四属性、第五属性,其中,
第一属性包括:访存要求为高带宽且延迟敏感;
第二属性包括:访存要求为高带宽且延迟较敏感,或中带宽且延迟敏;
第三属性包括:访存要求为中带宽且延迟较敏感,或低带宽且延迟敏感,或高带宽且延迟不敏感;
第四属性包括:访存要求为中带宽且延迟不敏感,或低带宽且延迟较敏感;
第五属性包括:访存要求为低带宽且延迟不敏感。
需要说明的是,在如上实施例的说明中,可以将数据中心系统中的虚拟机的访存属性划分为2种,也可以划分为3种、4种、5种,具体需要结合具体的应用场景来决定采用何种实现方式。
对于步骤A3,本发明实施例中,虚拟内存通道指的是将对内存控制通路进行拆分后的叫法,是与物理内存的数据通路相关的硬件概念。步骤A2将数据中心系统中的虚拟机归类为N种访存属性的虚拟机之后,步骤A3中为每一种访存属性的虚拟机分配一种位宽的虚拟内存通道,即若有N种访存属性的虚拟机,那么数据中心系统就会存在有N种位宽的虚拟内存通道,其中,不同位宽的虚拟内存通道中各个虚拟内存通道映射的物理内存的地址空间容量不同,每种位宽的虚拟内存通道确定有一个位宽,且N种位宽的虚拟内存通道的各个位宽都是不相同的,在为每一种访存属性的虚拟机分配一种位宽的虚拟内存通道之后,每种访存属性的虚拟机就可以使用相应的一种位宽的虚拟内存通道。对于步骤A4中,对于不同位宽的虚拟内存通道,其映射到的数据中心系统中的物理内存也是不同的,其中本发明实施例中所述的物理内存不同指的是对应于物理内存的地址空间不同的,虚拟内存通道与物理内存之间建立的映射关系用于表示当使用哪个位宽的虚拟机内存通道时应该映射到哪个地址空间的物理内存上,在建立虚拟内存通道与物理内存之间的映射关系时应该满足如下条件:不同位宽的虚拟内存通道映射的物理内存的地址空间容量不同,即本发明实施例中将数据中心系统中的物理内存的地址空间划分为多个容量不同的地址空间,各个不同容量的地址空间所被映射的虚拟内存通道的位宽也是不同的。需要说明的是,此处描述的不同位宽的虚拟内存通道映射的物理内存的地址空间容量不同指的是对单个的虚拟内存通道进行映射而言的,例如一个位宽为64bit(比特)的虚拟内存通道映射到的物理内存的地址空间容量,与一个位宽为32bit的虚拟内存通道映射到的物理内存的地址空间容量是不同的,但是有可能存在一个位宽为64bit的虚拟内存通道映射到的物理内存的地址空间容量,与两个位宽为32bit的虚拟内存通道映射到的物理内存的地址空间容量是相同的。
具体的,位宽越宽的虚拟内存通道映射到的物理内存的地址空间也越大。即对于单个的虚拟内存通道来说,若一个虚拟内存通道的位宽越大,则该虚拟内存通道映射到的物理内存的地址空间相对于其它位宽小的虚拟内存通道映射到的物理内存的地址空间而言也是较大的。举例说明如下:若数据中心系统中所有虚拟机按照访存属性可以划分为3种类型的虚拟机,即N取值为3,则共有3种访存属性,分别为访存属性A、访存属性B、访存属性C,这3种访存属性的虚拟机共分配有3种位宽的虚拟内存通道,分别为位宽各不相同的虚拟内存通道1、虚拟内存通道2、虚拟内存通道3,访存属性A的虚拟机使用的是虚拟内存通道1,访存属性B的虚拟机使用的是虚拟内存通道2,访存属性C的虚拟机使用的是虚拟内存通道3,可见访存属性不同的虚拟机使用的是不同位宽的虚拟内存通道。假设虚拟内存通道1是位宽为64bit的虚拟内存通道,虚拟内存通道2是位宽为32bit的虚拟内存通道,虚拟内存通道3是位宽为16bit的虚拟内存通道,若一个位宽为64bit的虚拟内存通道映射到的物理内存的地址空间容量为2G,一个位宽为32bit的虚拟内存通道映射到的物理内存的地址空间容量为1G,一个位宽为16bit的虚拟内存通道映射到的物理内存的地址空间容量为0.5G,则对于位宽不相同的虚拟内存通道其映射到的物理内存的地址空间容量不同。
具体的,在本发明的一些实施例中,步骤A3分别建立每种位宽的虚拟内存通道与数据中心系统中的物理内存之间的映射关系,可以包括如下步骤:
A31a、将数据中心系统中的物理内存划分为M个内存颗粒,其中每个内存颗粒对应的地址空间容量相同,M为大于N的自然数;
A32a、分别建立每种位宽的虚拟内存通道与M个内存颗粒中的至少一个内存颗粒之间的映射关系,其中,位宽越宽的虚拟内存通道映射到的内存颗粒个数也越多。
其中,步骤A31a中将数据中心系统的物理内存均分为M个内存颗粒,其中,内存颗粒是可以独立的接收地址和控制信号的最小资源单位,可以单独的对一个内存颗粒进行控制,数据中心系统中的物理内存的地址空间均分为M个内存颗粒,通常M的取值是大于N的自然数,通常情况下M的数量要远大于N,当数据中心系统中的物理内存被均分为M个内存颗粒之后,步骤A32a分别建立每种位宽的虚拟内存通道与M个内存颗粒中的至少一个内存颗粒之间的映射关系,并且位宽越宽的虚拟内存通道映射到的内存颗粒个数也越多,则每个内存颗粒可以隶属于不同的虚拟内存通道,具体一种位宽的虚拟内存通道映射到几个内存颗粒可以由数据中心系统中的物理内存的地址空间容量来决定,若物理内存的地址空间容量较大,则一种位宽的虚拟内存通道映射到的内存颗粒数也较多,具体实现方式此处不做限定。
举例说明如下:数据中心系统中所有虚拟机按照访存属性可以划分为3种类型的虚拟机,即N取值为3,则共有3种访存属性,分别为访存属性a、访存属性b、访存属性c,这3种访存属性的虚拟机共分配有3种位宽的虚拟内存通道,分别为位宽各不相同的虚拟内存通道1、虚拟内存通道2、虚拟内存通道3,访存属性a的虚拟机使用的是虚拟内存通道1,访存属性b的虚拟机使用的是虚拟内存通道2,访存属性c的虚拟机使用的是虚拟内存通道3,请参阅如图2-a所示,为本发明实施例提供的将虚拟内存通道映射到数据中心系统中的物理内存的地址空间的实现方式示意图,假设虚拟内存通道1是位宽为64bit的虚拟内存通道(简称为64位虚拟内存通道),虚拟内存通道2是位宽为32bit的虚拟内存通道(简称为32位虚拟内存通道),虚拟内存通道3是位宽为16bit的虚拟内存通道(简称为16位虚拟内存通道),假设物理内存的地址空间共映射有3种位宽的虚拟内存通道:64位虚拟内存通道、32位虚拟内存通道、16位虚拟内存通道。
其中,物理内存的地址空间中64位虚拟内存通道的个数为即共有n1个64位虚拟内存通道,物理内存的地址空间中32位虚拟内存通道的个数为即共有n2个32位虚拟内存通道,物理内存的地址空间中16位虚拟内存通道的个数为即共有n3个16位虚拟内存通道。
请参阅如图2-b所示,为本发明实施例提供的一种将位虚拟内存通道映射到数据中心系统中的物理内存的内存颗粒的实现方式示意图,假设将数据中心系统中的物理内存划分的每个内存颗粒的位宽为16bit,则一个位宽为64bit的虚拟内存通道映射到的内存颗粒个数为4个,图2-b中,4个内存颗粒可以组成一个64位虚拟内存通道。请参阅如图2-c所示,为本发明实施例提供的另一种将位虚拟内存通道映射到数据中心系统中的物理内存的内存颗粒的实现方式示意图,将数据中心系统中的物理内存划分的每个内存颗粒的位宽为16bit,则一个位宽为32bit的虚拟内存通道映射到的内存颗粒个数为2个,图2-c中,2个内存颗粒可以组成一个32位虚拟内存通道,一个位宽为16bit的虚拟内存通道映射到的内存颗粒个数为1个。由图2-c可知,位宽为64bit的虚拟内存通道对应有4个内存颗粒,位宽为32bit的虚拟内存通道对应有2个内存颗粒,位宽为16bit的虚拟内存通道对应有1个内存颗粒。当内存控制器接收到一个32字节的数据请求,即请求缓存32个字节的数据时,位宽为64bit的虚拟内存通道只需要4拍就可以完成数据传输,位宽为32bit的虚拟内存通道需要8拍就可以完成数据传输,位宽为16bit的虚拟内存通道需要16拍就可以完成数据传输,故位宽为64bit的虚拟内存通道可以实现高带宽、低延迟的数据处理,位宽为16bit的虚拟内存通道则具有低带宽、大延迟的数据处理。
上述步骤A31a至A32a描述的是基于内存颗粒建立虚拟内存通道和物理内存之间的映射关系,在本发明的另一些实施例中,步骤A3分别建立每种位宽的虚拟内存通道与数据中心系统中的物理内存之间的映射关系,可以包括如下步骤:
A31b、获取数据中心系统中的N种访存属性的虚拟机的历史内存分配信息,其中,历史内存分配信息包括:N种访存属性的虚拟机在历史时间段内运行各自的应用程序时分配的物理内存的地址空间容量;
A32b、根据N种访存属性的虚拟机的历史内存分配信息分别获取N种访存属性的虚拟机在历史时间段内使用的虚拟内存通道映射到的物理内存的地址空间容量;
A33b、根据N种访存属性的虚拟机在历史时间段内使用的虚拟内存通道映射到的物理内存的地址空间容量,分别建立每种位宽的虚拟内存通道与数据中心系统中的物理内存的地址空间容量之间的映射关系。
其中,为了确定每种位宽的虚拟内存通道映射到数据中心系统中的物理内存的地址容量,可以首先获取各种访存属性的虚拟机的历史内存分配信息,历史内存分配信息中包括在历史时间段内各种访存属性的虚拟机运行各自的应用程序时分配的物理内存的地址空间容量。另外,历史内存分配信息中还可以包括在历史时间段内各种访存属性的虚拟机分别创建的个数。举例说明如下:历史内存分配信息包括数据中心系统中运行的虚拟机个数,每个虚拟机运行什么类型的应用程序,每个虚拟机对内存的带宽需求(例如对带宽要求很高,或者对带宽无要求)、延迟敏感度(例如对延迟敏感,或者对延迟不敏感)、不同访存属性的虚拟机个数分别有多少(具体,其中延迟敏感的有几个虚拟机,对带宽要求很高的有几个虚拟机等等)。另外,历史时间段作为历史内存分配信息的采集时间段,其时段长短的选择可以根据数据中心系统的实际运维情况来决定,例如,可以选择一个月的时间长度作为历史时间段,对一个月内数据中心系统上创建的虚拟机进行统计,统计出数据中心系统上总共创建的虚拟机个数,各种访存属性的虚拟机个数,各个虚拟机上运行应用程序时分配的物理内存的地址空间容量,各个虚拟机上运行应用程序时对物理内存的带宽、时延的要求。
步骤A32b中对获取到的历史内存分配信息进行分析,从而统计出各种访存属性的虚拟机在历史时间段内使用的虚拟内存通道映射到的物理内存的地址空间容量。也就是说,通过对历史内存分配信息的分析,可以获取到在历史时间段内各个位宽的虚拟内存通道映射到的物理内存的地址空间容量,从而步骤A33b中就可以依据分析出的历史时间段内物理内存的地址空间容量来建立当前情况下虚拟内存通道与物理内存的地址空间容量之间的映射关系。
上述步骤A31b至A33b描述的是基于历史内存分配信息建立虚拟内存通道和物理内存之间的映射关系,在本发明的另一些实施例中,步骤A3分别建立每种位宽的虚拟内存通道与数据中心系统中的物理内存之间的映射关系,可以包括如下步骤:
A31c、计算N种位宽的虚拟内存通道中每种位宽的虚拟内存通道之间的位宽比例;
A32c、按照位宽比例分别建立每种位宽的虚拟内存通道与数据中心系统中的物理内存的地址空间容量之间的映射关系,其中,每种位宽的虚拟内存通道分别映射的物理内存的地址空间容量之间的容量比例和位宽比例相同或正相关。
其中,步骤A31c中计算出各种位宽的虚拟内存通道之间的位宽比例,例如,数据中心系统中共有3种位宽的虚拟内存通道,分别为位宽各不相同的虚拟内存通道1、虚拟内存通道2、虚拟内存通道3,假设虚拟内存通道1是位宽为64bit的虚拟内存通道,虚拟内存通道2是位宽为32bit的虚拟内存通道,虚拟内存通道3是位宽为16bit的虚拟内存通道,则位宽64bit、32bit、16bit的虚拟内存通道之间的位宽比例为64bit:32bit:16bit=1:2:4,则步骤A32c中建立每种位宽的虚拟内存通道与数据中心系统中的物理内存的地址空间容量之间的映射关系时,各种位宽的虚拟内存通道分别映射的物理内存的地址空间容量之间的容量比例与前述的位宽比例保持相同或正相关。即数据中心系统中的物理内存的地址空间容量被映射到各个位宽的虚拟内存通道时,也可以按照位宽比例来划分数据中心系统中的物理内存的地址空间容量,这种分配物理内存的地址空间容量的方式能够保证各个位宽的虚拟内存通道对应的地址空间容量的均衡性,因此也可以称之为按照均分策略划分物理内存的地址空间容量。仍以前述举例来说明,位宽64bit、32bit、16bit的虚拟内存通道之间的位宽比例为64bit:32bit:16bit=4:2:1时,数据中心系统中的物理内存的地址空间容量划分为分别与64位虚拟内存通道、32位虚拟内存通道、16位虚拟内存通道对应的各个地址空间容量时,各个地址空间容量的容量比例也可以为4:2:1,或者各个地址空间容量的容量比例也可以与位宽比例4:2:1呈正相关关系,例如,各个地址空间容量的容量比例为5:3:1。
需要说明的是,上述步骤A31c至A32c描述的是基于位宽比例建立虚拟内存通道和物理内存之间的映射关系。上述步骤A31a至A32a、A31b至A33b、A31c至A32c分别描述了建立虚拟内存通道和物理内存之间的映射关系的各种实现方式,在实际应用中可以结合具体的应用场景来选择何种实现方式,并且上述的实现方式可以结合共同实现建立虚拟内存通道和物理内存之间的映射关系。例如,在替换服务器时,以前的服务器运行时会记录有相关的历史内存分配信息,可以参考这个历史内存分配信息去配置新服务器上安装的数据中心系统。对于数据中心系统初始化时,若没有存储历史内存分配信息,则可以按照步骤A31c至A32c的均分策略来分配物理内存的地址空间容量,使数据中心系统先按照均分策略配置来配置数据中心系统,在数据中心系统运行一段时间后,再根据步骤A31b至A33b已经记录下的历史内存分配信息对数据中心系统中各个位宽的虚拟内存通道映射到的物理内存的地址空间容量进行重新配置。
103、根据虚拟内存通道和物理内存之间的映射关系向上述应用程序分配与虚拟机的访存属性相对应的物理内存。
在本发明实施例中,获取到发送内存请求信息的虚拟机的访存属性之后,根据前述步骤中描述的虚拟内存通道和物理内存之间的映射关系向虚拟机上运行的应用程序分配与虚拟机的访存属性相对应的物理内存。
根据前述的记载,针对不同访存属性的虚拟机使用不同位宽的虚拟内存通道,不同位宽的虚拟内存通道映射的物理内存的地址空间容量不同,故按照本发明实施例向应用程序分配与虚拟机的访存属性相对应的物理内存,可以满足不同的应用程序对访存服务质量的要求,提高对数据中心系统的内存利用效率。
需要说明的是,在本发明的一些实施例中,步骤103根据虚拟内存通道和物理内存之间的映射关系向应用程序分配与虚拟机的访存属性相对应的物理内存之后,还可以包括如下步骤:
当在虚拟机上运行应用程序时,通过虚拟机使用的虚拟内存通道响应虚拟机的读写请求。
其中,在为应用程序分配了与虚拟机的访存属性相对应的物理内存之后,通过该虚拟机使用的虚拟内存通道响应该虚拟机的读写请求,以实现应用程序对物理内存的运行需求。
在本发明的另一些实施例中,步骤103根据虚拟内存通道和物理内存之间的映射关系向应用程序分配与虚拟机的访存属性相对应的物理内存之后,还可以包括如下步骤:
根据虚拟机使用分配给应用程序的物理内存运行应用程序的运行情况,对数据中心系统中虚拟内存通道和物理内存之间的映射关系进行修正。即修正数据中心系统中虚拟内存通道和物理内存的地址空间容量之间的映射关系,例如在步骤103中根据虚拟内存通道和物理内存之间的映射关系向应用程序分配与虚拟机的访存属性相对应的物理内存之后,可以记录下内存分配信息,作为历史内存分配信息,然后按照步骤A31b至A33b的实现方式对虚拟内存通道和物理内存的地址空间容量之间的映射关系进行修正,也可以按照前述步骤A31a至A32a基于内存颗粒建立虚拟内存通道和物理内存之间的映射关系进行修正,还可以按照前述步骤A31c至A32c基于位宽比例建立虚拟内存通道和物理内存之间的映射关系进行修正。
通过以上对本发明实施例的描述可知,首先接收数据中心系统中的虚拟机发送的内存请求信息,根据应用程序对内存的需求信息获取上述虚拟机的访存属性,根据虚拟内存通道和物理内存之间的映射关系向应用程序分配与上述虚拟机的访存属性相对应的物理内存。本发明实施例中由于针对不同访存属性的虚拟机使用的是不同位宽的虚拟内存通道,且不同位宽的虚拟内存通道中各个虚拟内存通道映射的物理内存的地址空间容量不同,故可以针对虚拟机的访存属性来为应用程序分配与该访存属性相对应的物理内存的地址空间容量,从而避免为应用程序分配内存资源的资源块时存在的盲目性,由于针对虚拟机的不同访存属性分配了不同位宽的虚拟内存通道,通过虚拟内存通道和物理内存的映射关系为应用程序分配了与虚拟机的访存属性相对应的物理内存的地址空间,从而可以满足不同的应用程序对访存服务质量的要求,提高了对数据中心系统的内存利用效率。
为便于更好的理解和实施本发明实施例的上述方案,下面举例相应的应用场景来进行具体说明。
本发明实施例提出针对新兴数据中心系统的内存管理方法,以数据中心系统的虚拟机上运行的应用程序的负载特征为前提,实现了多粒度的虚拟内存通道共用,可以优化内存数据放置和分配策略,旨在提高数据中心系统的内存带宽利用率,降低功耗,提高整体性能。
步骤S01、获取数据中心系统中创建的多个虚拟机,将数据中心系统中创建的多个虚拟机按照访存属性进行归类,得到3种访存属性的虚拟机。
假设内存管理装置获取到的数据中心系统中的虚拟机的访存属性可以划分为3类,即N=3,分别为访存属性A、访存属性B、访存属性C,其中,访存属性A:访存要求为延迟敏感或高带宽,访存属性B:访存要求为延迟较敏感且带宽较低,访存属性C:访存要求为带宽低且延迟不敏感,可以理解的是,此处只是举例说明,不作为对本发明的限定,当然也可按照前述实施例中对访存属性的其它划分方式来进行划分。
步骤S02、为3种访存属性的虚拟机分配3种位宽的虚拟内存通道,其中,每种访存属性的虚拟机分配的虚拟内存通道的位宽不同。
假设内存管理装置获取到数据中心系统中的虚拟内存通道按照位宽的不同可分为3类,分别为位宽为64bit的虚拟内存通道、位宽为32bit的虚拟内存通道、位宽为16bit的虚拟内存通道。则这3种粒度的虚拟内存通道分别对应访存属性不同的虚拟机,其中,访存属性A的虚拟机使用的是位宽为64bit的虚拟内存通道,访存属性B的虚拟机使用的是位宽为32bit的虚拟内存通道,访存属性C的虚拟机使用的是位宽为16bit的虚拟内存通道。在数据中心系统中,位宽为64bit的虚拟内存通道有1个,为虚拟内存通道1;位宽为32bit的虚拟内存通道有2个,为虚拟内存通道2、虚拟内存通道3;位宽为16bit的虚拟内存通道有4个,为虚拟内存通道4、虚拟内存通道5、虚拟内存通道6、虚拟内存通道7。
步骤S03、根据3种访存属性的虚拟机在历史时间段内使用的虚拟内存通道映射到的物理内存的地址空间容量,分别建立每种位宽的虚拟内存通道与数据中心系统中的物理内存的地址空间容量之间的映射关系。
其中,内存管理装置通过对虚拟内存通道的多粒度划分,分别记录下各个位宽的虚拟内存通道在历史时间段内映射到的物理内存的地址空间容量,然后根据这些历史信息对数据中心系统中的物理内存的地址空间容量进行配置。即通过位宽粒度和映射到的内存空间容量大小的选择,即可以根据系统运行历史信息和虚拟机上运行应用程序的负载特点来确定出应该为每个虚拟内存通道分配多大的地址空间。
具体的,在数据中心系统的初始化阶段,可以根据历史内存分配信息,通过操作控制寄存器来配置虚拟内存通道的个数和位宽。如下表1所示,
结合如上表1,设数据中心系统的物理内存为8GB的内存,则可以为位宽为64bit的虚拟内存通道1映射的物理内存的地址空间0~2GB,可以为位宽为32bit的虚拟内存通道2、虚拟内存通道3映射的物理内存的地址空间2~4GB,可以为位宽为16bit的虚拟内存通道4、虚拟内存通道5、虚拟内存通道6、虚拟内存通道7映射的物理内存的地址空间4~7GB。则配置完成以后,虚拟内存通道和物理内存的地址空间之间就建立了映射关系。
需要说明的是,以上描述的历史内存分配信息为数据中心系统在以往运行过程中,实时收集的本节点的系统运行信息。按照本节点以往所运行的虚拟机的访存属性具有的特点,例如高带宽、低延迟的虚拟机需要多大的内存地址空间,低带宽、延迟大的虚拟机使用多大的内存地址空间等等。需要说明的是,数据中心系统中如果保存有历史内存分配信息,则根据历史内存分配信息为相应虚拟内存通道分配相应大小的内存地址空间;数据中心系统中如果没有保存历史内存分配信息,则可以在数据中心系统第一次运行时,按照默认的策略分配内存地址空间(例如可以按照前述实施例中的均分策略来进行),待数据中心系统运行一段时间后,根据所收集内存使用信息,再配置数据中心系统中的物理内存。
步骤S04、接收数据中心系统中的虚拟机发送的内存请求信息,其中,内存请求信息包括:在虚拟机上运行的应用程序对内存的需求信息。
步骤S05、根据应用程序对内存的需求信息获取虚拟机的访存属性,其中,针对不同访存属性的虚拟机使用不同位宽的虚拟内存通道,不同位宽的虚拟内存通道中各个虚拟内存通道映射的物理内存的地址空间容量不同。
当虚拟机向内存管理装置发送内存请求信息时,内存管理装置从内存请求信息中获取到应用程序对内存的需求信息,根据应用程序对内存的需求信息获取到发送内存请求信息的虚拟机的访存属性,然后执行后续步骤S06。
步骤S06、根据虚拟内存通道和物理内存之间的映射关系向应用程序分配与虚拟机的访存属性相对应的物理内存。
其中,在获取到虚拟机的访存属性之后,结合上表1的映射关系就可以为应用程序分配物理内存了。如上表1中,若获取到的虚拟机的访存属性为访存属性A,则可以为应用程序分配物理内存的地址空间为0~2G,当处理器访问0~2GB地址空间的时候,读写请求会被虚拟内存通道1响应,并且具有高带宽和低延迟的特点,若获取到的虚拟机的访存属性为访存属性B,则可以为应用程序分配物理内存的地址空间为2~4G,当处理器访问2~4GB地址区间的时候,读写请求会被相应的虚拟内存通道2、3来完成,该读写请求的响应具有带宽较低、延迟较敏感的特点,若获取到的虚拟机的访存属性为访存属性C,则可以为应用程序分配物理内存的地址空间为4~7G,当处理器访问4~7GB地址区间的时候,读写请求会被相应的虚拟内存通道4、5、6、7来完成,该读写请求的响应具有带宽低、延迟不敏感的特点。
需要说明的是,当数据中心系统中建立了虚拟内存通道和物理内存的地址空间容量的映射关系以后,地址区间的带宽和延迟特点也相应的被确定下来,故可以利用虚拟内存通道根据虚拟机上运行的应用程序的特点为其分配相匹配的物理内存的地址空间。创建虚拟机之前,虚拟机的用途已经可以确定(例如某个虚拟机可以用来做搜索服务器),其访存属性也已经确定,故根据虚拟机上应用程序的特点就可以为虚拟机分配最合适的物理内存的地址空间了。
举例说明:在对数据中心系统中虚拟内存通道与物理内存的地址空间建立映射关系的配置下,设有两个虚拟机需要创建,分别为VM1和VM2,其中VM1上运行的应用程序是网络搜索,VM2上运行的应用程序是桌面云。则获取到的两个虚拟机的访存属性分别为:
运行网络搜索的VM1:访存要求为对延迟敏感、带宽高,则对应于访存属性A;
运行桌面云的VM2:访存要求为低带宽、延迟不敏感,则对应于访存属性C。
在获取到VM1和VM2的访存属性之后,内存管理装置可以修改虚拟机的管理程序,内存管理装置把虚拟机的访存属性作为输入参数(VM1:A,VM2:C),内存管理装置根据输入类别(默认为C类,可以按照实际输入调整为A类)动态为新建的虚拟机分配物理内存的地址空间,根据内存地址空间和访存属性的对应关系,内存管理装置会将VM1分配到0~2G的内存地址空间,将VM2分配到4~7G的内存地址空间。如此,访存属性为A的虚拟机所有的访存请求由高带宽、低延迟的虚拟内存通道1响应,访存属性为C的虚拟机所有的访存请求由低带宽、延迟不敏感的虚拟内存通道4、5、6、7响应。
故通过如上举例说明可知,不同访存属性的虚拟机上运行的应用程序使用不同位宽的虚拟内存通道,从而可以满足不同应用程序对访存服务质量要求。而且本发明实施例中充分利用多粒度的虚拟内存通道,可以降低访存请求的并行度,增加了物理内存处于低功耗状态的时间,提高了对数据中心系统的内存利用效率,进而降低整个数据中心系统的功耗。
在本发明实施例中,首先接收数据中心系统中的虚拟机发送的内存请求信息,根据应用程序对内存的需求信息获取上述虚拟机的访存属性,根据虚拟内存通道和物理内存之间的映射关系向应用程序分配与上述虚拟机的访存属性相对应的物理内存。本发明实施例中由于针对不同访存属性的虚拟机使用的是不同位宽的虚拟内存通道,且不同位宽的虚拟内存通道中各个虚拟内存通道映射的物理内存的地址空间容量不同,故可以针对虚拟机的访存属性来为应用程序分配与该访存属性相对应的物理内存的地址空间容量,从而避免为应用程序分配内存资源的资源块时存在的盲目性,由于针对虚拟机的不同访存属性分配了不同位宽的虚拟内存通道,通过虚拟内存通道和物理内存的映射关系为应用程序分配了与虚拟机的访存属性相对应的物理内存的地址空间,从而可以满足不同的应用程序对访存服务质量的要求,提高了对数据中心系统的内存利用效率。
需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本发明所必须的。
为便于更好的实施本发明实施例的上述方案,下面还提供用于实施上述方案的相关装置。
请参阅图3-a所示,本发明实施例提供的一种内存管理装置300,可以包括:信息接收模块301、属性获取模块302、内存分配模块303,其中,
信息接收模块301,用于接收数据中心系统中的虚拟机发送的内存请求信息,所述内存请求信息包括:在所述虚拟机上运行的应用程序对内存的需求信息;
属性获取模块302,用于根据所述信息接收模块301接收到的所述应用程序对内存的需求信息获取所述虚拟机的访存属性,其中,针对不同访存属性的虚拟机使用不同位宽的虚拟内存通道,所述不同位宽的虚拟内存通道中各个虚拟内存通道映射的物理内存的地址空间容量不同;
内存分配模块303,用于根据虚拟内存通道和物理内存之间的映射关系向所述应用程序分配与所述属性获取模块获取到的所述虚拟机的访存属性相对应的物理内存。
请参阅如图3-b所示,在本发明的一些实施例中,相对于如图3-a所示的内存管理装置300,内存管理装置300,还可以包括:
虚拟机获取模块304,用于在所述信息接收模块接收虚拟机发送的内存请求信息之前,获取所述数据中心系统中创建的多个虚拟机;
属性归类模块305,用于对所述虚拟机获取模块获取到的所述数据中心系统中创建的多个虚拟机的访存属性进行归类,得到N种访存属性的虚拟机,其中,所述数据中心系统中虚拟机的访存属性可分为N种类型,所述N为大于1的自然数;
通道分配模块306,用于为所述属性归类模块归类出的N种访存属性的虚拟机分配N种位宽的虚拟内存通道,其中,每种访存属性的虚拟机分配的虚拟内存通道的位宽不同;
映射建立模块307,用于分别建立每种位宽的虚拟内存通道与所述数据中心系统中的物理内存之间的映射关系,其中,位宽越宽的虚拟内存通道映射到的物理内存的地址空间也越大。
具体的,请参阅如图3-c所示,在本发明的一些实施例中,映射建立模块307,可以包括:
内存划分子模块3071,用于将所述数据中心系统中的物理内存划分为M个内存颗粒,其中每个内存颗粒对应的地址空间容量相同,所述M为大于所述N的自然数;
第一映射建立子模块3072,用于分别建立每种位宽的虚拟内存通道与所述M个内存颗粒中的至少一个内存颗粒之间的映射关系,其中,位宽越宽的虚拟内存通道映射到的内存颗粒个数也越多。
具体的,请参阅如图3-d所示,在本发明的另一些实施例中,映射建立模块307,可以包括:
信息获取子模块3073,用于获取所述数据中心系统中的N种访存属性的虚拟机的历史内存分配信息,所述历史内存分配信息包括:所述N种访存属性的虚拟机在历史时间段内运行各自的应用程序时分配的物理内存的地址空间容量;
容量获取子模块3074,用于根据所述N种访存属性的虚拟机的历史内存分配信息分别获取所述N种访存属性的虚拟机在所述历史时间段内使用的虚拟内存通道映射到的物理内存的地址空间容量;
第二映射建立子模块3075,用于根据所述N种访存属性的虚拟机在所述历史时间段内使用的虚拟内存通道映射到的物理内存的地址空间容量,分别建立每种位宽的虚拟内存通道与所述数据中心系统中的物理内存的地址空间容量之间的映射关系。
具体的,请参阅如图3-e所示,在本发明的另一些实施例中,映射建立模块307,可以包括:
位宽比例计算模块3076,用于计算所述N种位宽的虚拟内存通道中每种位宽的虚拟内存通道之间的位宽比例;
第三映射建立子模块3077,用于按照所述位宽比例分别建立每种位宽的虚拟内存通道与所述数据中心系统中的物理内存的地址空间容量之间的映射关系,其中,每种位宽的虚拟内存通道分别映射的物理内存的地址空间容量之间的容量比例和所述位宽比例相同或正相关。
请参阅如图3-f所示,在本发明的一些实施例中,相对于如图3-a所示的内存管理装置300,内存管理装置300,还可以包括:
映射修正模块308,用于所述内存分配模块303根据虚拟内存通道和物理内存之间的映射关系向所述应用程序分配与所述虚拟机的访存属性相对应的物理内存之后,根据所述虚拟机使用分配给所述应用程序的物理内存运行所述应用程序的运行情况,对所述数据中心系统中虚拟内存通道和物理内存之间的映射关系进行修正。
请参阅如图3-g所示,在本发明的一些实施例中,相对于如图3-a所示的内存管理装置300,内存管理装置300,还可以包括:
请求响应模块309,用于所述内存分配模块303根据虚拟内存通道和物理内存之间的映射关系向所述应用程序分配与所述虚拟机的访存属性相对应的物理内存之后,当在所述虚拟机上运行应用程序时,通过所述虚拟机使用的虚拟内存通道响应所述虚拟机的读写请求。
具体的,在本发明的一些实施例中,所述属性获取模块302获取到的所述虚拟机的访存属性为以下属性中的一种:访存要求为高带宽、访存要求为低带宽;
或,所述属性获取模块302获取到的所述虚拟机的访存属性为以下属性中的一种:访存要求为延迟敏感、访存要求为延迟不敏感;
或,所述属性获取模块302获取到的所述虚拟机的访存属性为以下属性中的一种:访存要求为高带宽且延迟敏感、访存要求为高带宽且延迟不敏感、访问要求为低带宽且延迟敏感、访问要求为低带宽且延迟不敏感。
具体的,在本发明的另一些实施例中,所述属性获取模块302获取到的所述虚拟机的访存属性为以下属性中的一种:访存要求为高带宽、访存要求为中带宽、访存要求为低带宽;
或,所述属性获取模块302获取到的所述虚拟机的访存属性为以下属性中的一种:访存要求为延迟敏感、访存要求为延迟较敏感、访存要求为延迟不敏感;
或,所述属性获取模块302获取到的所述虚拟机的访存属性为以下属性中的一种:第一属性、第二属性、第三属性、第四属性、第五属性,其中,
所述第一属性包括:访存要求为高带宽且延迟敏感;
所述第二属性包括:访存要求为高带宽且延迟较敏感,或中带宽且延迟敏;
所述第三属性包括:访存要求为中带宽且延迟较敏感,或低带宽且延迟敏感,或高带宽且延迟不敏感;
所述第四属性包括:访存要求为中带宽且延迟不敏感,或低带宽且延迟较敏感;
所述第五属性包括:访存要求为低带宽且延迟不敏感。
在本发明实施例中,首先信息接收模块接收数据中心系统中的虚拟机发送的内存请求信息,属性获取模块根据应用程序对内存的需求信息获取上述虚拟机的访存属性,内存分配模块根据虚拟内存通道和物理内存之间的映射关系向应用程序分配与上述虚拟机的访存属性相对应的物理内存。本发明实施例中由于针对不同访存属性的虚拟机使用的是不同位宽的虚拟内存通道,且不同位宽的虚拟内存通道中各个虚拟内存通道映射的物理内存的地址空间容量不同,故可以针对虚拟机的访存属性来为应用程序分配与该访存属性相对应的物理内存的地址空间容量,从而避免为应用程序分配内存资源的资源块时存在的盲目性,由于针对虚拟机的不同访存属性分配了不同位宽的虚拟内存通道,通过虚拟内存通道和物理内存的映射关系为应用程序分配了与虚拟机的访存属性相对应的物理内存的地址空间,从而可以满足不同的应用程序对访存服务质量的要求,提高了对数据中心系统的内存利用效率。
本发明实施例还提供一种计算机存储介质,其中,该计算机存储介质存储有程序,该程序执行包括上述方法实施例中记载的部分或全部步骤。
接下来介绍本发明实施例提供的另一种内存管理装置,请参阅图4所示,内存管理装置400包括:
内存401、处理器402和内存控制器403(其中内存管理装置400中的处理器402的数量可以一个或多个,内存控制器403的数量可以是一个或者多个,图4中以一个处理器和一个内存控制器为例)。在本发明的一些实施例中,输入装置401、内存401、处理器402和内存控制器403可通过总线或其它方式连接,其中,图4中以通过总线连接为例。
其中,处理器402,用于执行如下步骤:接收数据中心系统中的虚拟机发送的内存请求信息,所述内存请求信息包括:在所述虚拟机上运行的应用程序对内存的需求信息。
在本发明的一些实施例中,内存控制器403,用于执行以下步骤:根据所述应用程序对内存的需求信息获取所述虚拟机的访存属性,其中,针对不同访存属性的虚拟机使用不同位宽的虚拟内存通道,所述不同位宽的虚拟内存通道中各个虚拟内存通道映射的物理内存的地址空间容量不同;根据虚拟内存通道和物理内存之间的映射关系向所述应用程序分配与所述虚拟机的访存属性相对应的物理内存。
在本发明的一些实施例中,内存控制器403,还用于执行以下步骤:所述接收虚拟机发送的内存请求信息之前,获取所述数据中心系统中创建的多个虚拟机;
对创建的多个虚拟机的访存属性进行归类,得到N种访存属性的虚拟机,其中,所述数据中心系统中虚拟机的访存属性可分为N种类型,所述N为大于1的自然数;
为所述N种访存属性的虚拟机分配N种位宽的虚拟内存通道,其中,每种访存属性的虚拟机分配的虚拟内存通道的位宽不同;
分别建立每种位宽的虚拟内存通道与所述数据中心系统中的物理内存之间的映射关系,其中,位宽越宽的虚拟内存通道映射到的物理内存的地址空间也越大。
在本发明的一些实施例中,内存控制器403分别建立每种位宽的虚拟内存通道与所述数据中心系统中的物理内存之间的映射关系,具体可以包括如下步骤:
将所述数据中心系统中的物理内存划分为M个内存颗粒,其中每个内存颗粒对应的地址空间容量相同,所述M为大于所述N的自然数;
分别建立每种位宽的虚拟内存通道与所述M个内存颗粒中的至少一个内存颗粒之间的映射关系,其中,位宽越宽的虚拟内存通道映射到的内存颗粒个数也越多。
在本发明的一些实施例中,内存控制器403分别建立每种位宽的虚拟内存通道与所述数据中心系统中的物理内存之间的映射关系,具体可以包括如下步骤:
获取所述数据中心系统中的N种访存属性的虚拟机的历史内存分配信息,所述历史内存分配信息包括:所述N种访存属性的虚拟机在历史时间段内运行各自的应用程序时分配的物理内存的地址空间容量;
根据所述N种访存属性的虚拟机的历史内存分配信息分别获取所述N种访存属性的虚拟机在所述历史时间段内使用的虚拟内存通道映射到的物理内存的地址空间容量;
根据所述N种访存属性的虚拟机在所述历史时间段内使用的虚拟内存通道映射到的物理内存的地址空间容量,分别建立每种位宽的虚拟内存通道与所述数据中心系统中的物理内存的地址空间容量之间的映射关系。
在本发明的一些实施例中,内存控制器403分别建立每种位宽的虚拟内存通道与所述数据中心系统中的物理内存之间的映射关系,具体可以包括如下步骤:
计算所述N种位宽的虚拟内存通道中每种位宽的虚拟内存通道之间的位宽比例;
按照所述位宽比例分别建立每种位宽的虚拟内存通道与所述数据中心系统中的物理内存的地址空间容量之间的映射关系,其中,每种位宽的虚拟内存通道分别映射的物理内存的地址空间容量之间的容量比例和所述位宽比例相同或正相关。
在本发明的一些实施例中,内存控制器403,还用于执行以下步骤:根据虚拟内存通道和物理内存之间的映射关系向所述应用程序分配与所述虚拟机的访存属性相对应的物理内存之后,根据所述虚拟机使用分配给所述应用程序的物理内存运行所述应用程序的运行情况,对所述数据中心系统中虚拟内存通道和物理内存之间的映射关系进行修正。
在本发明的一些实施例中,内存控制器403,还用于执行以下步骤:根据虚拟内存通道和物理内存之间的映射关系向所述应用程序分配与所述虚拟机的访存属性相对应的物理内存之后,当在所述虚拟机上运行应用程序时,通过所述虚拟机使用的虚拟内存通道响应所述虚拟机的读写请求。
在本发明的一些实施例中,内存401中存储的所述数据中心系统中的虚拟机的访存属性为以下属性中的一种:访存要求为高带宽、访存要求为低带宽;或,所述数据中心系统中的虚拟机的访存属性为以下属性中的一种:访存要求为延迟敏感、访存要求为延迟不敏感;或,所述数据中心系统中的虚拟机的访存属性为以下属性中的一种:访存要求为高带宽且延迟敏感、访存要求为高带宽且延迟不敏感、访问要求为低带宽且延迟敏感、访问要求为低带宽且延迟不敏感。
在本发明的一些实施例中,内存401中存储的所述数据中心系统中的虚拟机的访存属性为以下属性中的一种:访存要求为高带宽、访存要求为中带宽、访存要求为低带宽;或,所述数据中心系统中的虚拟机的访存属性为以下属性中的一种:访存要求为延迟敏感、访存要求为延迟较敏感、访存要求为延迟不敏感;或,所述数据中心系统中的虚拟机的访存属性为以下属性中的一种:第一属性、第二属性、第三属性、第四属性、第五属性,其中,
所述第一属性包括:访存要求为高带宽且延迟敏感;
所述第二属性包括:访存要求为高带宽且延迟较敏感,或中带宽且延迟敏;
所述第三属性包括:访存要求为中带宽且延迟较敏感,或低带宽且延迟敏感,或高带宽且延迟不敏感;
所述第四属性包括:访存要求为中带宽且延迟不敏感,或低带宽且延迟较敏感;
所述第五属性包括:访存要求为低带宽且延迟不敏感。
在本发明实施例中,首先处理器接收数据中心系统中的虚拟机发送的内存请求信息,内存控制器根据应用程序对内存的需求信息获取上述虚拟机的访存属性,内存控制器根据虚拟内存通道和物理内存之间的映射关系向应用程序分配与上述虚拟机的访存属性相对应的物理内存。本发明实施例中由于针对不同访存属性的虚拟机使用的是不同位宽的虚拟内存通道,且不同位宽的虚拟内存通道中各个虚拟内存通道映射的物理内存的地址空间容量不同,故可以针对虚拟机的访存属性来为应用程序分配与该访存属性相对应的物理内存的地址空间容量,从而避免为应用程序分配内存资源的资源块时存在的盲目性,由于针对虚拟机的不同访存属性分配了不同位宽的虚拟内存通道,通过虚拟内存通道和物理内存的映射关系为应用程序分配了与虚拟机的访存属性相对应的物理内存的地址空间,从而可以满足不同的应用程序对访存服务质量的要求,提高了对数据中心系统的内存利用效率。
另外需说明的是,以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。另外,本发明提供的装置实施例附图中,模块之间的连接关系表示它们之间具有通信连接,具体可以实现为一条或多条通信总线或信号线。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
通过以上的实施方式的描述,所属领域的技术人员可以清楚地了解到本发明可借助软件加必需的通用硬件的方式来实现,当然也可以通过专用硬件包括专用集成电路、专用CPU、专用存储器、专用元器件等来实现。一般情况下,凡由计算机程序完成的功能都可以很容易地用相应的硬件来实现,而且,用来实现同一功能的具体硬件结构也可以是多种多样的,例如模拟电路、数字电路或专用电路等。但是,对本发明而言更多情况下软件程序实现是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在可读取的存储介质中,如计算机的软盘,U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
综上所述,以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照上述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对上述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
Claims (18)
1.一种内存管理方法,其特征在于,包括:
接收数据中心系统中的虚拟机发送的内存请求信息,所述内存请求信息包括:在所述虚拟机上运行的应用程序对内存的需求信息;
根据所述应用程序对内存的需求信息获取所述虚拟机的访存属性,其中,针对不同访存属性的虚拟机使用不同位宽的虚拟内存通道,所述不同位宽的虚拟内存通道中各个虚拟内存通道映射的物理内存的地址空间容量不同;
根据虚拟内存通道和物理内存之间的映射关系向所述应用程序分配与所述虚拟机的访存属性相对应的物理内存。
2.根据权利要求1所述的方法,其特征在于,所述接收数据中心系统中的虚拟机发送的内存请求信息之前,还包括:
获取所述数据中心系统中创建的多个虚拟机;
对创建的多个虚拟机的访存属性进行归类,得到N种访存属性的虚拟机,其中,所述数据中心系统中虚拟机的访存属性可分为N种类型,所述N为大于1的自然数;
为所述N种访存属性的虚拟机分配N种位宽的虚拟内存通道,其中,每种访存属性的虚拟机分配的虚拟内存通道的位宽不同;
分别建立每种位宽的虚拟内存通道与所述数据中心系统中的物理内存之间的映射关系,其中,位宽越宽的虚拟内存通道映射到的物理内存的地址空间也越大。
3.根据权利要求2所述的方法,其特征在于,所述分别建立每种位宽的虚拟内存通道与所述数据中心系统中的物理内存之间的映射关系,包括:
将所述数据中心系统中的物理内存划分为M个内存颗粒,其中每个内存颗粒对应的地址空间容量相同,所述M为大于所述N的自然数;
分别建立每种位宽的虚拟内存通道与所述M个内存颗粒中的至少一个内存颗粒之间的映射关系,其中,位宽越宽的虚拟内存通道映射到的内存颗粒个数也越多。
4.根据权利要求2所述的方法,其特征在于,所述分别建立每种位宽的虚拟内存通道与所述数据中心系统中的物理内存之间的映射关系,包括:
获取所述数据中心系统中的N种访存属性的虚拟机的历史内存分配信息,所述历史内存分配信息包括:所述N种访存属性的虚拟机在历史时间段内运行各自的应用程序时分配的物理内存的地址空间容量;
根据所述N种访存属性的虚拟机的历史内存分配信息分别获取所述N种访存属性的虚拟机在所述历史时间段内使用的虚拟内存通道映射到的物理内存的地址空间容量;
根据所述N种访存属性的虚拟机在所述历史时间段内使用的虚拟内存通道映射到的物理内存的地址空间容量,分别建立每种位宽的虚拟内存通道与所述数据中心系统中的物理内存的地址空间容量之间的映射关系。
5.根据权利要求2所述的方法,其特征在于,所述分别建立每种位宽的虚拟内存通道与所述数据中心系统中的物理内存之间的映射关系,包括:
计算所述N种位宽的虚拟内存通道中每种位宽的虚拟内存通道之间的位宽比例;
按照所述位宽比例分别建立每种位宽的虚拟内存通道与所述数据中心系统中的物理内存的地址空间容量之间的映射关系,其中,每种位宽的虚拟内存通道分别映射的物理内存的地址空间容量之间的容量比例和所述位宽比例相同或正相关。
6.根据权利要求1至5中任一项所述的方法,其特征在于,所述根据虚拟内存通道和物理内存之间的映射关系向所述应用程序分配与所述虚拟机的访存属性相对应的物理内存之后,还包括:
根据所述虚拟机使用分配给所述应用程序的物理内存运行所述应用程序的运行情况,对所述数据中心系统中虚拟内存通道和物理内存之间的映射关系进行修正。
7.根据权利要求1至5中任一项所述的方法,其特征在于,所述根据虚拟内存通道和物理内存之间的映射关系向所述应用程序分配与所述虚拟机的访存属性相对应的物理内存之后,还包括:
当在所述虚拟机上运行应用程序时,通过所述虚拟机使用的虚拟内存通道响应所述虚拟机的读写请求。
8.根据权利要求1所述的方法,其特征在于,
所述数据中心系统中的虚拟机的访存属性为以下属性中的一种:访存要求为高带宽、访存要求为低带宽;
或,所述数据中心系统中的虚拟机的访存属性为以下属性中的一种:访存要求为延迟敏感、访存要求为延迟不敏感;
或,所述数据中心系统中的虚拟机的访存属性为以下属性中的一种:访存要求为高带宽且延迟敏感、访存要求为高带宽且延迟不敏感、访问要求为低带宽且延迟敏感、访问要求为低带宽且延迟不敏感。
9.根据权利要求1所述的方法,其特征在于,
所述数据中心系统中的虚拟机的访存属性为以下属性中的一种:访存要求为高带宽、访存要求为中带宽、访存要求为低带宽;
或,所述数据中心系统中的虚拟机的访存属性为以下属性中的一种:访存要求为延迟敏感、访存要求为延迟较敏感、访存要求为延迟不敏感;
或,所述数据中心系统中的虚拟机的访存属性为以下属性中的一种:第一属性、第二属性、第三属性、第四属性、第五属性,其中,
所述第一属性包括:访存要求为高带宽且延迟敏感;
所述第二属性包括:访存要求为高带宽且延迟较敏感,或中带宽且延迟敏感;
所述第三属性包括:访存要求为中带宽且延迟较敏感,或低带宽且延迟敏感,或高带宽且延迟不敏感;
所述第四属性包括:访存要求为中带宽且延迟不敏感,或低带宽且延迟较敏感;
所述第五属性包括:访存要求为低带宽且延迟不敏感。
10.一种内存管理装置,其特征在于,包括:
信息接收模块,用于接收数据中心系统中的虚拟机发送的内存请求信息,所述内存请求信息包括:在所述虚拟机上运行的应用程序对内存的需求信息;
属性获取模块,用于根据所述信息接收模块接收到的所述应用程序对内存的需求信息获取所述虚拟机的访存属性,其中,针对不同访存属性的虚拟机使用不同位宽的虚拟内存通道,所述不同位宽的虚拟内存通道中各个虚拟内存通道映射的物理内存的地址空间容量不同;
内存分配模块,用于根据虚拟内存通道和物理内存之间的映射关系向所述应用程序分配与所述属性获取模块获取到的所述虚拟机的访存属性相对应的物理内存。
11.根据权利要求10所述的装置,其特征在于,所述内存管理装置,还包括:
虚拟机获取模块,用于在所述信息接收模块接收数据中心系统中的虚拟机发送的内存请求信息之前,获取所述数据中心系统中创建的多个虚拟机;
属性归类模块,用于对所述虚拟机获取模块获取到的所述数据中心系统中创建的多个虚拟机的访存属性进行归类,得到N种访存属性的虚拟机,其中,所述数据中心系统中虚拟机的访存属性可分为N种类型,所述N为大于1的自然数;
通道分配模块,用于为所述属性归类模块归类出的N种访存属性的虚拟机分配N种位宽的虚拟内存通道,其中,每种访存属性的虚拟机分配的虚拟内存通道的位宽不同;
映射建立模块,用于分别建立每种位宽的虚拟内存通道与所述数据中心系统中的物理内存之间的映射关系,其中,位宽越宽的虚拟内存通道映射到的物理内存的地址空间也越大。
12.根据权利要求11所述的装置,其特征在于,所述映射建立模块,包括:
内存划分子模块,用于将所述数据中心系统中的物理内存划分为M个内存颗粒,其中每个内存颗粒对应的地址空间容量相同,所述M为大于所述N的自然数;
第一映射建立子模块,用于分别建立每种位宽的虚拟内存通道与所述M个内存颗粒中的至少一个内存颗粒之间的映射关系,其中,位宽越宽的虚拟内存通道映射到的内存颗粒个数也越多。
13.根据权利要求11所述的装置,其特征在于,所述映射建立模块,包括:
信息获取子模块,用于获取所述数据中心系统中的N种访存属性的虚拟机的历史内存分配信息,所述历史内存分配信息包括:所述N种访存属性的虚拟机在历史时间段内运行各自的应用程序时分配的物理内存的地址空间容量;
容量获取子模块,用于根据所述N种访存属性的虚拟机的历史内存分配信息分别获取所述N种访存属性的虚拟机在所述历史时间段内使用的虚拟内存通道映射到的物理内存的地址空间容量;
第二映射建立子模块,用于根据所述N种访存属性的虚拟机在所述历史时间段内使用的虚拟内存通道映射到的物理内存的地址空间容量,分别建立每种位宽的虚拟内存通道与所述数据中心系统中的物理内存的地址空间容量之间的映射关系。
14.根据权利要求11所述的装置,其特征在于,所述映射建立模块,包括:
位宽比例计算模块,用于计算所述N种位宽的虚拟内存通道中每种位宽的虚拟内存通道之间的位宽比例;
第三映射建立子模块,用于按照所述位宽比例分别建立每种位宽的虚拟内存通道与所述数据中心系统中的物理内存的地址空间容量之间的映射关系,其中,每种位宽的虚拟内存通道分别映射的物理内存的地址空间容量之间的容量比例和所述位宽比例相同或正相关。
15.根据权利要求10至14中任一项所述的装置,其特征在于,所述内存管理装置,还包括:
映射修正模块,用于所述内存分配模块根据虚拟内存通道和物理内存之间的映射关系向所述应用程序分配与所述虚拟机的访存属性相对应的物理内存之后,根据所述虚拟机使用分配给所述应用程序的物理内存运行所述应用程序的运行情况,对所述数据中心系统中虚拟内存通道和物理内存之间的映射关系进行修正。
16.根据权利要求10至14中任一项所述的装置,其特征在于,所述内存管理装置,还包括:
请求响应模块,用于所述内存分配模块根据虚拟内存通道和物理内存之间的映射关系向所述应用程序分配与所述虚拟机的访存属性相对应的物理内存之后,当在所述虚拟机上运行应用程序时,通过所述虚拟机使用的虚拟内存通道响应所述虚拟机的读写请求。
17.根据权利要求10所述的装置,其特征在于,所述属性获取模块获取到的所述虚拟机的访存属性为以下属性中的一种:访存要求为高带宽、访存要求为低带宽;
或,所述属性获取模块获取到的所述虚拟机的访存属性为以下属性中的一种:访存要求为延迟敏感、访存要求为延迟不敏感;
或,所述属性获取模块获取到的所述虚拟机的访存属性为以下属性中的一种:访存要求为高带宽且延迟敏感、访存要求为高带宽且延迟不敏感、访问要求为低带宽且延迟敏感、访问要求为低带宽且延迟不敏感。
18.根据权利要求10所述的装置,其特征在于,所述属性获取模块获取到的所述虚拟机的访存属性为以下属性中的一种:访存要求为高带宽、访存要求为中带宽、访存要求为低带宽;
或,所述属性获取模块获取到的所述虚拟机的访存属性为以下属性中的一种:访存要求为延迟敏感、访存要求为延迟较敏感、访存要求为延迟不敏感;
或,所述属性获取模块获取到的所述虚拟机的访存属性为以下属性中的一种:第一属性、第二属性、第三属性、第四属性、第五属性,其中,
所述第一属性包括:访存要求为高带宽且延迟敏感;
所述第二属性包括:访存要求为高带宽且延迟较敏感,或中带宽且延迟敏感;
所述第三属性包括:访存要求为中带宽且延迟较敏感,或低带宽且延迟敏感,或高带宽且延迟不敏感;
所述第四属性包括:访存要求为中带宽且延迟不敏感,或低带宽且延迟较敏感;
所述第五属性包括:访存要求为低带宽且延迟不敏感。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310740508.0A CN104750557B (zh) | 2013-12-27 | 2013-12-27 | 一种内存管理方法和内存管理装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310740508.0A CN104750557B (zh) | 2013-12-27 | 2013-12-27 | 一种内存管理方法和内存管理装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104750557A CN104750557A (zh) | 2015-07-01 |
CN104750557B true CN104750557B (zh) | 2018-07-03 |
Family
ID=53590300
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310740508.0A Active CN104750557B (zh) | 2013-12-27 | 2013-12-27 | 一种内存管理方法和内存管理装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104750557B (zh) |
Families Citing this family (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105468461A (zh) * | 2016-01-15 | 2016-04-06 | 浪潮(北京)电子信息产业有限公司 | 一种内存分区的方法及系统 |
CN106484529B (zh) * | 2016-09-12 | 2019-05-14 | Oppo广东移动通信有限公司 | 终端的内存调整方法及终端 |
CN107562515B (zh) * | 2017-08-04 | 2021-09-07 | 海光信息技术股份有限公司 | 一种在虚拟化技术中管理内存的方法 |
EP3822796B1 (en) * | 2018-07-31 | 2023-01-18 | Huawei Technologies Co., Ltd. | Memory interleaving method and device |
US11307796B2 (en) | 2018-09-27 | 2022-04-19 | International Business Machines Corporation | Mapping memory allocation requests using various memory attributes |
US10831659B2 (en) | 2018-09-28 | 2020-11-10 | International Business Machines Corporation | Scope resolution tag buffer to reduce cache miss latency |
CN111352703B (zh) * | 2020-03-06 | 2023-09-08 | 网易(杭州)网络有限公司 | 一种数据处理的方法及装置、电子设备、存储介质 |
CN112231269B (zh) * | 2020-09-29 | 2024-08-27 | 深圳宏芯宇电子股份有限公司 | 多处理器系统数据处理方法及多处理器系统 |
CN115053211A (zh) * | 2020-11-10 | 2022-09-13 | 华为技术有限公司 | 一种内存管理的方法以及相关装置 |
CN113485791B (zh) * | 2021-07-07 | 2022-06-03 | 上海壁仞智能科技有限公司 | 配置方法和访问方法、装置、虚拟化系统和存储介质 |
CN113791822B (zh) * | 2021-11-15 | 2022-04-12 | 沐曦集成电路(上海)有限公司 | 多内存通道的内存存取装置、方法和数据处理设备 |
CN117290081A (zh) * | 2022-06-20 | 2023-12-26 | 哲库科技(上海)有限公司 | 通道分路器、存储控制装置、片上系统及终端 |
CN116107668B (zh) * | 2023-04-13 | 2023-08-15 | 紫光同芯微电子有限公司 | 一种应用程序运行方法及其系统 |
CN117519910B (zh) * | 2023-12-29 | 2024-03-22 | 苏州元脑智能科技有限公司 | 用于虚拟机的计算快速链接内存确定方法和装置 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102096594A (zh) * | 2009-12-14 | 2011-06-15 | 联想(北京)有限公司 | 使用内存中系统资源的方法、虚拟机管理器及计算机 |
CN102306126A (zh) * | 2011-08-24 | 2012-01-04 | 华为技术有限公司 | 内存管理方法、装置和系统 |
CN103246622A (zh) * | 2013-04-10 | 2013-08-14 | 华为技术有限公司 | 一种扩展内存的方法、内存节点、主节点及系统 |
CN103294710A (zh) * | 2012-02-28 | 2013-09-11 | 北京新媒传信科技有限公司 | 一种数据存取方法和装置 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9292437B2 (en) * | 2008-07-01 | 2016-03-22 | International Business Machines Corporation | Optimizing virtual memory allocation in a virtual machine based upon a previous usage of the virtual memory blocks |
-
2013
- 2013-12-27 CN CN201310740508.0A patent/CN104750557B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102096594A (zh) * | 2009-12-14 | 2011-06-15 | 联想(北京)有限公司 | 使用内存中系统资源的方法、虚拟机管理器及计算机 |
CN102306126A (zh) * | 2011-08-24 | 2012-01-04 | 华为技术有限公司 | 内存管理方法、装置和系统 |
CN103294710A (zh) * | 2012-02-28 | 2013-09-11 | 北京新媒传信科技有限公司 | 一种数据存取方法和装置 |
CN103246622A (zh) * | 2013-04-10 | 2013-08-14 | 华为技术有限公司 | 一种扩展内存的方法、内存节点、主节点及系统 |
Also Published As
Publication number | Publication date |
---|---|
CN104750557A (zh) | 2015-07-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104750557B (zh) | 一种内存管理方法和内存管理装置 | |
CN104881325B (zh) | 一种资源调度方法和资源调度系统 | |
CN111176792B (zh) | 一种资源调度方法、装置及相关设备 | |
US9081623B1 (en) | Service resource allocation | |
CN109684074A (zh) | 物理机资源分配方法及终端设备 | |
CN107402891A (zh) | 确定共享虚拟内存页面管理模式的方法和相关设备 | |
US10908940B1 (en) | Dynamically managed virtual server system | |
CN104166628B (zh) | 管理内存的方法、装置和系统 | |
CN106375395A (zh) | 节点服务器的负载均衡方法和系统 | |
CN109597567A (zh) | 一种数据处理方法和装置 | |
US10313431B2 (en) | Storage system and method for connection-based load balancing | |
CN108881348A (zh) | 服务质量控制方法、装置和存储服务器 | |
CN114205317B (zh) | 基于sdn与nfv的服务功能链sfc资源分配方法及电子设备 | |
CN104219279A (zh) | 用于超大规模分布式处理应用的模块化架构的系统和方法 | |
CN113037800B (zh) | 作业调度方法以及作业调度装置 | |
CN109213695A (zh) | 缓存管理方法、存储系统以及计算机程序产品 | |
CN109471725A (zh) | 资源分配方法、装置和服务器 | |
Ma et al. | vLocality: Revisiting data locality for MapReduce in virtualized clouds | |
CN108647155A (zh) | 一种基于深度学习的多级cache共享的方法和装置 | |
CN110515728B (zh) | 服务器调度方法、装置、电子设备及机器可读存储介质 | |
CN116888579A (zh) | 分布式高速缓存管理 | |
CN117076140A (zh) | 一种分布式计算方法、装置、设备、系统及可读存储介质 | |
CN108390913B (zh) | 一种控制用户使用资源的方法及装置 | |
EP4057142A1 (en) | Job scheduling method and job scheduling apparatus | |
CN104750614B (zh) | 用于管理存储器的方法和装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |