一种虚拟CPU与物理CPU之间的映射方法及电子设备
技术领域
本发明涉及电子技术领域,特别涉及一种虚拟CPU与物理CPU之间的映射方法及电子设备。
背景技术
在虚拟化环境下,从虚拟机的角度出发,是用虚拟CPU执行计算,但实质上,是由虚拟机所在的物理主机的物理CPU执行具体的计算功能。在多核环境下,存在多个物理CPU和多个虚拟CPU时,会出现如何将虚拟CPU映射至物理CPU的问题。
现有技术中,针对如何将虚拟CPU映射至物理CPU的问题,每个物理CPU管理一个本地可运行的虚拟CPU队列;每个虚拟CPU的优先级有2种状态:已调度over和待调度under;在调度时,调度器会优先调度当前状态为under的虚拟CPU,若此物理CPU的运行队列中没有优先级为under的虚拟CPU,将从其他CPU的运行队列中寻找一个under的虚拟CPU。
然而,现有技术中均为under的虚拟CPU可能运行相同任务类型的任务,由于虚拟CPU与物理CPU的映射未考虑资源竞争的因素,常常将相同任务类型的虚拟CPU映射到不同物理CPU上同时运行,存在资源竞争、系统整体性能下降的技术问题。
发明内容
本发明实施例提供一种虚拟CPU与物理CPU之间的映射方法及电子设备,用于解决现有技术中虚拟CPU映射到物理CPU时存在的资源竞争、系统整体性能下降的技术问题。
第一方面,本发明提供一种虚拟CPU与物理CPU之间的映射方法,所述方法应用于多核系统,所述多核系统中包括至少两个物理CPU、虚拟机管理器及至少一个虚拟机,所述虚拟机管理器运行在所述至少两个物理CPU中的任一物理CPU上,所述至少一个虚拟机中包括至少两个虚拟CPU,所述虚拟机管理器能够将所述虚拟CPU映射到所述至少两个物理CPU中的任一物理CPU上运行,所述方法包括:
在当前时间周期内,所述虚拟机管理器从所述至少两个虚拟CPU中获取待映射的第一虚拟CPU集合,从所述至少两个物理CPU中获取在下一时间周期内待运行任务最少的第一物理CPU;
所述虚拟机管理器获取所述第一虚拟CPU集合中每个第一虚拟CPU的第一特征值及所述第一物理CPU的第二特征值,所述每个第一虚拟CPU的第一特征值为表征所述第一虚拟CPU在所述当前时间周期的前一时间周期内所映射到的物理CPU在运行任务时的特征,所述第二特征值为表征所述第一物理CPU在所述当前时间周期的前一时间周期内运行任务时的特征;
所述虚拟机管理器从所有的所述第一特征值中获取与所述第二特征值匹配的目标特征值,并将所述目标特征值对应的目标虚拟CPU映射到所述第一物理CPU上运行。
结合第一方面,在第一种可能实施的方式中,所述每个第一虚拟CPU的第一特征值包括:所述每个第一虚拟CPU在当前时间周期的前一时间周期内的虚拟CPU利用率、所述第一虚拟CPU所在虚拟机上的内存总线对应的内存总线利用率及所述第一虚拟CPU所在虚拟机上的网络I/O中断数量;
所述第一物理CPU的第二特征值包括:第一物理CPU在当前时间周期的前一时间周期内的物理CPU利用率、第一物理CPU在物理主机上的内存总线的内存总线利用率及第一物理CPU在所述物理主机上的网络I/O中断数量。
结合第一方面的第一种可能实施的方式,在第二种可能实施的方式中,所述虚拟机管理器从所有的所述第一特征值中获取与所述第二特征值匹配的目标特征值,包括:
根据所述第二特征值和所述每个第一虚拟CPU的第一特征值,分别获得所述第二特征值和所述每个第一虚拟CPU的第一特征值之间的相似性值;
获取所有相似性值中设定值域范围内的相似性值对应的第一特征值作为与所述第二特征值匹配的目标特征值。
结合第一方面的第二种可能实施的方式,在第三种可能实施的方式中,所述根据所述第二特征值和所述每个第一虚拟CPU的第一特征值,分别获得所述第二特征值和所述每个第一虚拟CPU的第一特征值之间的相似性值,包括:
通过如下公式获得所述相似性值:
DΔab=Σ(raj-rbj)2,raj∈Ra,rbj∈Rb
其中,DΔab表示所述相似性值,Ra表示所述一个第一虚拟CPU的第一特征值,Rb表示所述第二特征值,raj与rbj分别是Ra与Rb中相互对应的任一项参数:所述虚拟CPU利用率与所述物理CPU利用率;所述第一虚拟CPU所在虚拟机上的内存总线对应的内存总线利用率与第一物理CPU在物理主机上的内存总线的内存总线利用率;所述第一虚拟CPU所在虚拟机上的网络I/O中断数量与物理CPU在所述物理主机上的网络I/O中断数量;
其中,所有相似性值中小于设定阈值的相似性值对应的第一特征值为所述目标特征值。
结合第一方面的第二种可能实施的方式,在第四种可能实施的方式中,所述根据所述第二特征值和所述每个第一虚拟CPU的第一特征值,分别获得所述第二特征值和所述每个第一虚拟CPU的第一特征值之间的相似性值,包括:
通过如下公式获得所述相似性值:
DΔab=Σ(rai-rbi)2+[(raK-rbK)/rmax]2,rai、raK∈Ra,rbi、rbK∈Rb
其中,DΔab表示所述相似性值,Ra表示所述一个第一虚拟CPU的第一特征值,Rb表示所述第二特征值,raK为Ra中所述第一虚拟CPU所在虚拟机上的网络I/O中断数量,rbK为Rb中物理CPU在物理主机上的网络I/O中断数量,rai与rbi分别是Ra与Rb中除了raK、rbK以外相互对应的任一项参数:所述虚拟CPU利用率与所述物理CPU利用率;所述第一虚拟CPU所在虚拟机上的内存总线对应的内存总线利用率与第一物理CPU在物理主机上的内存总线的内存总线利用率;rmax为所有物理CPU的第二特征值中最大第二网络I/O中断数量;
其中,所有相似性值中小于设定阈值的相似性值对应的第一特征值为所述目标特征值。
结合第一方面的第二种可能实施的方式,在第五种可能实施的方式中,所述根据所述第二特征值和所述每个第一虚拟CPU的第一特征值,分别获得所述第二特征值和所述每个第一虚拟CPU的第一特征值之间的相似性值,包括:
通过如下公式获得所述相似性值:
其中,DΔab表示所述相似性值,Ra表示所述一个第一虚拟CPU的第一特征值,Rb表示所述第二特征值,raj与rbj分别是Ra与Rb中相互对应的任一项参数:所述虚拟CPU利用率与所述物理CPU利用率;所述第一虚拟CPU所在虚拟机上的内存总线对应的内存总线利用率与第一物理CPU在物理主机上的内存总线的内存总线利用率;所述第一虚拟CPU所在虚拟机上的网络I/O中断数量与第一物理CPU在所述物理主机上的网络I/O中断数量;
其中,所有相似性值中大于设定阈值的相似性值对应的第一特征值为所述目标特征值。
结合第一方面或者第一种至第五种中任一可能实施的方式,在第六种可能实施的方式中,在所述虚拟机管理器获取所述第一虚拟CPU集合中每个第一虚拟CPU的第一特征值及所述第一物理CPU的第二特征值之后,所述方法还包括:
获取所述至少两个物理CPU中任一物理CPU运行时的最大频率和最小频率,及所述物理CPU运行时在物理主机上的最大内存总线利用率和最小内存总线利用率;
根据所述任一物理CPU对应的物理CPU利用率、所述最大频率、所述最小频率、所述最大内存总线利用率及最小内存总线利用率,获得所述任一物理CPU当前工作需要的目标频率,并将所述任一物理CPU的当前工作频率调整为所述目标频率。
结合第一方面的第六种可能实施的方式,在第七种可能实施的方式中,所述根据所述任一物理CPU对应的第二特征值、所述最大频率、所述最小频率、所述最大内存总线利用率及最小内存总线利用率,获得所述任一物理CPU当前工作需要的目标频率,具体通过如下公式获得所述目标频率:
其中,s(Rcpu)为目标频率,Rcpu为所述物理CPU利用率,fmax为所述物理CPU的最大频率,fmin为所述物理CPU的最小频率,Rbusmax为所最大内存总线利用率,Rbusmin为所述最小内存总线利用率。
第二方面,本发明提供一种调节物理CPU频率的方法,包括:
获取物理CPU当前的CPU利用率及运行参数;
根据所述CPU利用率及所述运行参数,获得所述物理CPU当前工作需要的目标频率,并将所述物理CPU的当前工作频率调整为所述目标频率。
结合第二方面,在第一种可能实施的方式中,所述运行参数具体包括:
所述物理CPU工作时能够达到的最大频率和最小频率,及所述物理CPU在物理主机上的最大内存总线利用率和最小内存总线利用率。
结合第二方面的第一种可能实施的方式,在第二种可能实施的方式中,所述根据所述当前CPU利用率及所述运行参数,获得所述物理CPU当前工作需要的目标频率,具体通过如下公式获得所述目标频率:
其中,s(Rcpu)为目标频率,Rcpu为所述CPU利用率,fmax为所述最大频率,fmin为所述最小频率,Rbusmax为所述最大内存总线利用率,Rbusmin为所述最小内存总线利用率。
第三方面,本发明提供一种电子设备,包括:
虚拟机,包含至少一个虚拟CPU;
虚拟机管理器,所述虚拟机管理器包含特征获取模块和映射模块;
其中,所述特征获取模块用于在当前时间周期内,所述虚拟机管理器从所述至少两个虚拟CPU中获取待映射的第一虚拟CPU集合,从所述至少两个物理CPU中获取在下一时间周期内待运行任务最少的第一物理CPU;获取所述第一虚拟CPU集合中每个第一虚拟CPU的第一特征值及所述第一物理CPU的第二特征值,所述每个第一虚拟CPU的第一特征值为表征所述第一虚拟CPU在所述当前时间周期的前一时间周期内所映射到的物理CPU在运行任务时的特征,所述第二特征值为表征所述第一物理CPU在所述当前时间周期的前一时间周期内运行任务时的特征;
所述映射模块用于从所有的所述第一特征值中获取与所述第二特征值匹配的目标特征值,并将所述目标特征值对应的目标虚拟CPU映射到所述第一物理CPU上运行。
结合第三方面,在第一种可能实施的方式中,所述每个第一虚拟CPU的第一特征值包括:所述每个第一虚拟CPU在当前时间周期的前一时间周期内的虚拟CPU利用率、所述第一虚拟CPU所在虚拟机上的内存总线对应的内存总线利用率及所述第一虚拟CPU所在虚拟机上的网络I/O中断数量;
所述第一物理CPU的第二特征值包括:第一物理CPU在当前时间周期的前一时间周期内的物理CPU利用率、第一物理CPU在物理主机上的内存总线的内存总线利用率及第一物理CPU在所述物理主机上的网络I/O中断数量。
结合第三方面的第一种可能实施的方式,在第二种可能实施的方式中,所述映射模块具体用于:
根据所述第二特征值和所述每个第一虚拟CPU的第一特征值,分别获得所述第二特征值和所述每个第一虚拟CPU的第一特征值之间的相似性值;
获取所有相似性值中设定值域范围内的相似性值对应的第一特征值作为与所述第二特征值匹配的目标特征值。
结合第三方面的第二种可能实施的方式,在第三种可能实施的方式中,所述映射模块具体用于:
通过如下公式获得所述相似性值:
DΔab=Σ(raj-rbj)2,raj∈Ra,rbj∈Rb
其中,DΔab表示所述相似性值,Ra表示所述一个第一虚拟CPU的第一特征值,Rb表示所述第二特征值,raj与rbj分别是Ra与Rb中相互对应的任一项参数:所述虚拟CPU利用率与所述物理CPU利用率;所述第一虚拟CPU所在虚拟机上的内存总线对应的内存总线利用率与第一物理CPU在物理主机上的内存总线的内存总线利用率;所述第一虚拟CPU所在虚拟机上的网络I/O中断数量与物理CPU在所述物理主机上的网络I/O中断数量;
其中,所有相似性值中小于设定阈值的相似性值对应的第一特征值为所述目标特征值。
结合第三方面的第二种可能实施的方式,在第四种可能实施的方式中,所述映射模块具体用于:
通过如下公式获得所述相似性值:
DΔab=Σ(rai-rbi)2+[(raK-rbK)/rmax]2,rai、raK∈Ra,rbi、rbK∈Rb
其中,DΔab表示所述相似性值,Ra表示所述一个第一虚拟CPU的第一特征值,Rb表示所述第二特征值,raK为Ra中所述第一虚拟CPU所在虚拟机上的网络I/O中断数量,rbK为Rb中物理CPU在物理主机上的网络I/O中断数量,rai与rbi分别是Ra与Rb中除了raK、rbK以外相互对应的任一项参数:所述虚拟CPU利用率与所述物理CPU利用率;所述第一虚拟CPU所在虚拟机上的内存总线对应的内存总线利用率与第一物理CPU在物理主机上的内存总线的内存总线利用率;rmax为所有物理CPU的第二特征值中最大第二网络I/O中断数量;
其中,所有相似性值中小于设定阈值的相似性值对应的第一特征值为所述目标特征值。
结合第三方面的第二种可能实施的方式,在第五种可能实施的方式中,所述映射模块具体用于:
通过如下公式获得所述相似性值:
其中,DΔab表示所述相似性值,Ra表示所述一个第一虚拟CPU的第一特征值,Rb表示所述第二特征值,raj与rbj分别是Ra与Rb中相互对应的任一项参数:所述虚拟CPU利用率与所述物理CPU利用率;所述第一虚拟CPU所在虚拟机上的内存总线对应的内存总线利用率与第一物理CPU在物理主机上的内存总线的内存总线利用率;所述第一虚拟CPU所在虚拟机上的网络I/O中断数量与第一物理CPU在所述物理主机上的网络I/O中断数量;
其中,所有相似性值中大于设定阈值的相似性值对应的第一特征值为所述目标特征值。
结合第三方面或者第一种至第五种中任一可能实施的方式,在第六种可能实施的方式中,在所述电子设备还包括频率调整模块,所述频率调整模块用于:
在虚拟机管理器获取所述第一虚拟CPU集合中每个第一虚拟CPU的第一特征值及所述第一物理CPU的第二特征值之后,获取所述至少两个物理CPU中任一物理CPU运行时的最大频率和最小频率,及所述物理CPU运行时在物理主机上的最大内存总线利用率和最小内存总线利用率;
根据所述任一物理CPU对应的物理CPU利用率、所述最大频率、所述最小频率、所述最大内存总线利用率及最小内存总线利用率,获得所述任一物理CPU当前工作需要的目标频率,并将所述任一物理CPU的当前工作频率调整为所述目标频率。
结合第三方面的第六种可能实施的方式,在第七种可能实施的方式中,所述频率调整模块具体用于通过如下公式获得所述目标频率:
其中,s(Rcpu)为目标频率,Rcpu为所述物理CPU利用率,fmax为所述物理CPU的最大频率,fmin为所述物理CPU的最小频率,Rbusmax为所最大内存总线利用率,Rbusmin为所述最小内存总线利用率。
第四方面,本发明提供一种电子设备,包括:
获取模块,用于获取物理CPU当前的CPU利用率及运行参数;
调整模块,用于根据所述CPU利用率及所述运行参数,获得所述物理CPU当前工作需要的目标频率,并将所述物理CPU的当前工作频率调整为所述目标频率。
结合第四方面,在第一种可能实施的方式中,所述运行参数具体包括:
所述物理CPU工作时能够达到的最大频率和最小频率,及所述物理CPU在物理主机上的最大内存总线利用率和最小内存总线利用率。
结合第四方面的第一种可能实施的方式,在第二种可能实施的方式中,所述调整模块具体用于通过如下公式获得所述目标频率:
其中,s(Rcpu)为目标频率,Rcpu为所述CPU利用率,fmax为所述最大频率,fmin为所述最小频率,Rbusmax为所述最大内存总线利用率,Rbusmin为所述最小内存总线利用率。
本申请实施例中的上述一个或多个技术方案,至少具有如下技术效果:
通过获取所有虚拟CPU前一时间周期内运行任务时的第一特征值和物理CPU前一时间周期内运行任务时的第二特征值,并从所述第一特征值中获取与第二特征值匹配的目标特征值,以将目标特征值对应的虚拟CPU映射到该物理CPU上运行,使得相似的任务在相同的物理CPU上运行,避免不同的物理CPU运行相似的任务造成资源竞争,从而解决了现有技术中虚拟CPU映射到物理CPU时存在的资源竞争、系统整体性能下降的技术问题,进而减少资源竞争、提高系统性能。
附图说明
图1为本发明实施例一提供的多核系统的示意图;
图2为本发明实施例一提供的一种虚拟CPU与物理CPU之间的映射方法的流程示意图;
图3为本发明实施例一提供的虚拟CPU映射到物理CPU的细化步骤示意图;
图4为本发明实施例二提供的一种调节物理CPU频率的方法流程示意图;
图5为本发明实施例三提供的一种电子设备的结构方框图;
图6为本发明实施例四提供的一种电子设备的结构方框图;
图7为本发明实施例五提供的一种电子设备的结构方框图;
图8为本发明实施例六提供的一种电子设备的结构方框图。
具体实施方式
为了解决现有技术中虚拟CPU映射到物理CPU时出现的资源竞争、系统整体性能下降的技术问题,本发明实施例提出了一种虚拟CPU与物理CPU之间的映射方法及电子设备。
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本文中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系。
下面结合附图对本申请实施例技术方案的主要实现原理、具体实施方式及其对应能够达到的有益效果进行详细的阐述。
实施例一
请参考图1,申请实施例提供的虚拟CPU与物理CPU之间的映射方法应用于多核系统,该多核中包括至少两个物理CPU11、虚拟机管理器(VirtualMachineManager,VMM)12及至少一个虚拟机(VirtualMachine,VM)13,其中,每个虚拟机13中包括一个或多个虚拟CPU131。在该多核系统中,虚拟机管理器12运行在至少两个物理CPU11中的任一物理CPU11上,用于实现虚拟CPU131到物理CPU11之间的映射和管理,能够将虚拟CPU131映射到系统中至少两个物理CPU11中的任一物理CPU11上运行。
请参考图2,本申请实施例提供的一种虚拟CPU与物理CPU之间的映射方法,包括:
S201:在当前时间周期内,虚拟机管理器12从至少两个虚拟CPU131中获取待映射的第一虚拟CPU集合,从至少两个物理CPU11中获取在下一时间周期内待运行任务最少的第一物理CPU;
S202:虚拟机管理器12获取第一虚拟CPU集合中每个第一虚拟CPU的第一特征值及所述第一物理CPU的第二特征值,每个第一虚拟CPU的第一特征值为表征第一虚拟CPU在当前时间周期的前一时间周期内所映射到的物理CPU在运行任务时的特征,第二特征值为表征第一物理CPU在所述当前时间周期的前一时间周期内运行任务时的特征;
S203:虚拟机管理器12从所有的第一特征值中获取与第二特征值匹配的目标特征值,并将目标特征值对应的目标虚拟CPU映射到第一物理CPU上运行。
在多核系统中,虚拟CPU131在运行时,其运行的任务可能为CPU瓶颈型任务、内存瓶颈型任务或者I/O瓶颈型任务。相应的,物理CPU11在运行时,其运行的任务也可能为CPU瓶颈型任务、内存瓶颈型任务或者I/O瓶颈型任务。由于虚拟CPU131的运行任务实际上是映射到物理CPU11上运行的,虚拟CPU运行的任务的特征由所映射到的物理CPU11在运行该任务时体现,例如:虚拟CPU131的任务为内存瓶颈型(内存占用率较高),那么所映射到的物理CPU11运行该任务时也会出现较高的内存占用率。为了避免运行相同任务类型的虚拟CPU映射到不同的物理CPU上同时运行造成资源竞争,虚拟机管理器12在进行虚拟CPU到物理CPU映射的过程中先执行S201。
在S201中,虚拟机管理器在当前时间周期内从至少两个虚拟CPU131中获取待映射的第一虚拟CPU集合,及从至少两个物理CPU11中获取在下一时间周期内待运行任务最少的第一物理CPU。因为有的物理CPU11上已经运行了较多的任务,所以为了任务分配平衡需要找出下一时间周期负载较轻的物理CPU作为待映射的物理CPU即第一物理CPU。
紧接着,虚拟机管理器12执行S202获得第一虚拟CPU集合中每一个第一虚拟CPU的第一特征值及第一物理CPU的第二特征值。在具体实施过程中,每个第一虚拟CPU的第一特征值具体可以包括:第一虚拟CPU在当前时间周期的前一时间周期内的虚拟CPU利用率、第一虚拟CPU所在虚拟机上的内存总线对应的内存总线利用率及第一虚拟CPU所在虚拟机上的网络I/O中断数量。相应的,第一物理CPU的第二特征值具体可以包括:第一物理CPU在当前时间周期的前一时间周期内的物理CPU利用率、物理CPU在物理主机上的内存总线的内存总线利用率及物理CPU在物理主机上的网络I/O中断数量。
具体的,虚拟CPU利用率可以用于分辨第一虚拟CPU前一时间周期内运行任务的任务类型是否为CPU瓶颈型,第一虚拟CPU的内存总线利用率可以用于分辨第一虚拟CPU前一时间周期内运行任务的任务类型是否为内存瓶颈型,第一虚拟CPU的网络I/O终端数量可以用于分辨第一虚拟CPU当前运行任务的任务类型是否为I/O瓶颈型。相应的,第一物理CPU的物理CPU利用率可以用于分辨第一物理CPU前一时间周期运行任务的任务类型是否为CPU瓶颈型,第一物理CPU的内存总线利用率可以用于分辨其前一时间周期内运行任务的任务类型是否为内存瓶颈型,第一物理CPU的网络I/O终端数量可以用于分辨其前一时间周期内运行任务的任务类型是否为I/O瓶颈型。
虚拟机管理器12在获取到每一个第一虚拟CPU的第一特征值和第一物理CPU的第二特征值之后,继续执行S203从所有的第一特征值中获取与第二特征值匹配的目标特征值,并将目标特征值对应的目标虚拟CPU映射到第一物理CPU上运行。其中,目标特征值与第一特征值匹配,表明目标虚拟CPU当前时间周期的前一时间周期运行的任务类型与第一物理CPU当前时间周期的前一时间周期运行的任务类型相同,如:当前时间周期的前一时间周期内,目标虚拟CPU和第一物理CPU运行的任务均为CPU瓶颈型任务。具体的,虚拟机管理器12可以先根据每个第一虚拟CPU的第一特征值和第二特征值,分别获得第二特征值和每个第一虚拟CPU的第一特征值之间的相似性值,然后获取所有相似性值中设定值域范围内的相似性值对应的第一特征值作为与第二特征值匹配的目标特征值。
具体的,当每个第一特征值包含:每个第一虚拟CPU的虚拟CPU利用率、内存总线利用率及网络I/O中断数量,第一物理CPU的第二特征值包含:物理CPU利用率、内存总线利用率及网络I/O中断数量时,为了获取每个第一虚拟CPU当前时间周期的前一时间周期内运行的任务与第一物理CPU当前时间周期的前一时间周期内运行的任务之间当前运行的第二任务之间的相似度,本申请实施例提供三种用于表征相似度大小的相似性值的计算方式:
方式一:先获取虚拟CPU利用率与物理CPU利用率的差值的第一平方值,第一虚拟CPU的内存总线利用率与第一物理CPU的内存总线利用率的差值的第二平方值,及第一虚拟CPU的网络I/O中断数量与第一物理CPU的网络I/O中断数量的差值的第三平方值;接着,获取第一平方值、第二平方值及第三平方值的和值(即相似性值)。具体的,方式一可以通过公式一表示:
DΔab=Σ(raj-rbj)2,raj∈Ra,rbj∈Rb
其中,DΔab表示相似性值,Ra表示一个第一虚拟CPU的第一特征值,Rb表示第二特征值,raj与rbj分别是Ra与Rb中对应的任一项参数:虚拟CPU利用率与物理CPU利用率;第一虚拟CPU所在虚拟机上的内存总线对应的内存总线利用率与第一物理CPU在物理主机上的内存总线的内存总线利用率;所述第一虚拟CPU所在虚拟机上的网络I/O中断数量与第一物理CPU在所述物理主机上的网络I/O中断数量。需要说明的是,第一虚拟CPU和第一物理CPU的特征值中包含除CPU利用率、内存总线利用率、网络I/O中断数量以外的其他参数时,公式一同样适用。
方式二:先获取虚拟CPU利用率与物理CPU利用率的差值的第一平方值,第一虚拟CPU的内存总线利用率与第一物理CPU的内存总线利用率的差值的第二平方值;以及获取第一虚拟CPU的网络I/O中断数量与第一物理CPU的网络I/O中断数量的差值,及该差值与所有物理CPU的网络I/O中断数量中的最大网络I/O中断数量的比值的第三平方值;接着,获取第一平方值、第二平方值及第三平方值的和值(即相似性值)。具体的方式二可以通过公式二表示:
DΔab=Σ(rai-rbi)2+[(raK-rbK)/rmax]2,rai、raK∈Ra,rbi、rbK∈Rb
其中,DΔab表示相似性值,Ra表示一个第一虚拟CPU的第一特征值,Rb表示第二特征值,raK为Ra中的第一虚拟CPU的网络I/O中断数量,rbK为Rb中的第一物理CPU的网络I/O中断数量,rai与rbi分别是Ra与Rb中除了raK、rbK以外对应的任一项参数:虚拟CPU利用率与物理CPU利用率;第一虚拟CPU所在虚拟机上的内存总线对应的内存总线利用率与第一物理CPU在物理主机上的内存总线的内存总线利用率;rmax为所有物理CPU11的第二特征值中最大网络I/O中断数量。需要说明的是,第一虚拟CPU和第一物理CPU的特征值中包含除CPU利用率、内存总线利用率、网络I/O中断数量以外的其他参数时,公式二同样适用。
方式三:获取每个第一虚拟CPU的第一特征值中各个参数与第一物理CPU的第二特征值中对应的各个参数中较小参数,然后取各个较小的参数之和作为相似性值。具体可以通过公式三获得该相似性值:
其中,DΔab表示所述相似性值,Ra表示所述一个第一虚拟CPU的第一特征值,Rb表示所述第二特征值,raj与rbj分别是Ra与Rb中相互对应的任一项参数:所述虚拟CPU利用率与所述物理CPU利用率;所述第一虚拟CPU所在虚拟机上的内存总线对应的内存总线利用率与第一物理CPU在物理主机上的内存总线的内存总线利用率;所述第一虚拟CPU所在虚拟机上的网络I/O中断数量与第一物理CPU在所述物理主机上的网络I/O中断数量。
通过公式三计算获得的相似性值DΔab的大小与相似度的大小成正比,即相似性值越小相似度越小,相似性值越大相似度越大。那么虚拟机管理器12在通过上述公式三获取到获取每一个第一虚拟CPU的第一特征值与第一物理CPU的第二特征值之间的相似性值之后,获得所有相似性值中大于设定阈值的相似性值对应的第一特征值作为目标特征值。为此,虚拟机管理器12可以将目标特征值对应的目标虚拟CPU映射到第一物理CPU上运行。
相反的,通过上述公式一和公式二计算获得的相似性值DΔab的大小与相似度的大小成反比,即相似性值越小相似度越大,相似性值越大相似度越小。那么虚拟机管理器12在通过上述公式一或公式二获取到获取每一个第一虚拟CPU的第一特征值与第一物理CPU的第二特征值之间的相似性值之后,获得所有相似性值中小于设定阈值的相似性值对应的第一特征值作为目标特征值。为此,虚拟机管理器12可以将目标特征值对应的目标虚拟CPU映射到第一物理CPU上运行。
需要说明的是:上述设定阈值可以由技术人员参照不同的相似性值计算公式进行不同的设定,例如:假设相似性值是通过公式一计算获得,设定阈值DΔmax则可以通过获得,其中RA是所有第一虚拟CPU中表示特征值的集合,rAj是RA中对应的某一项特征值,α是调节参数,一般情况下,有0<α≤1。另外,设定阈值具体还可以根据该多核系统中一个映射周期内(虚拟机管理器12完成一次虚拟CPU到物理CPU的映射过程)一个物理CPU上平均允许映射的虚拟CPU的数量进行自动设置,例如:一个物理CPU上平均允许映射的虚拟CPU的数量为1,若使用公式一或公式二计算获得相似性值时,那么设定阈值自动取所有相似性值中第二小的相似性值,那么目标特征值则为所有相似性值中最小的相似性值;若使用公式三计算获得相似性值时,相反的目标特征值则为所有相似性值中最大的相似性值,以此类推。
请参考图3,下面通过一个具体的实例,对上述虚拟CPU与物理CPU之间的映射方法进行举例说明:
S301:在当前时间周期内,虚拟机管理器查看当前虚拟CPU列表中是否存在待映射的第一虚拟CPU集合;如果存在继续S302。
例如:查看出当前虚拟CPU列表中存在待映射的第一虚拟CPU集合,该第一虚拟CPU集合中包含第一虚拟CPU“A”和“B”,那么获取该第一虚拟CPU集合,并继续下一步。
S302:虚拟机管理器查找获得当前时间周期的下一时间周期内待运行任务最少的第一物理CPU。因为,有的物理CPU上已经映射了较多的虚拟CPU的任务和/或自身的任务较多,在下一时间周期内负荷较重,所以查找运行任务最少的物理CPU,减轻其它物理CPU的负载。
例如:电子设备中有4个物理CPU分别为:“A1”、“B1”、“C1”及“D1”,其中物理CPU“B1”和“C1”下一时间周期均需要运行已映射的2个虚拟CPU的任务,物理CPU“D1”下一时间周期也需要运行已映射的1个虚拟CPU的任务,而物理CPU“A1”下一时间周期无需要运行的任务,那么虚拟机管理器获得第一物理CPU为:物理CPU“A1”,并继续下一步。
S303:虚拟机管理器获取每个第一虚拟CPU的第一特征值和第一物理CPU的第二特征值。
例如:获得到第一物理CPU“A1”的第二特征值为:物理CPU利用率80%、内存总线利用率50%及网络I/O中断数量4;第一虚拟CPU“A”的第一特征值为:虚拟CPU利用率75%、内存总线利用率55%及网络I/O中断数量4;第一虚拟CPU“B”的第一特征值为:虚拟CPU利用率50%、内存总线利用率70%及网络I/O中断数量2。
S304:虚拟机管理器针对每一个第一虚拟CPU,计算每一个第一虚拟CPU的第一特征值与第一物理CPU的第二特征之间的相似性值。
例如:虚拟机管理器通过公式二计算获得每个第一虚拟CPU与第一物理CPU的特征值之间的相似性值分别为:第一虚拟CPU“A”与第一物理CPU“D”之间的相似性值为0.005,第一虚拟CPU“B”与第一物理CPU“A1”之间的相似性值为0.38。
S305:虚拟机管理器从所有的相似性值中获得小于设定阈值的相似性值对应第一特征值作为目标特征值,将该目标特征值对应的目标虚拟CPU映射到该第一物CPU上运行。
例如:上述步骤获得的相似性值分别为0.005和0.38,由于公式二计算的特征值的差异部分,所以相似度的大小与相似性值成反比,假设设定阈值为0.38那么获得小于设定阈值的相似性值0.005对应的第一特征值作为目标特征值,将目标特征值对应的目标虚拟CPU“B”映射到第一物理CPU“A1”上运行。
通过上述技术方案,将运行任务类型相似的虚拟CPU映射到与同一个与其运行任务类型相似的物理CPU上(如,将运行内存瓶颈型任务的两个虚拟CPU映射到内存瓶颈型任务的一个物理CPU上),避免相同任务类型的运行任务被映射到不同物理CPU上运行,从而避免相同任务类型的运行任务同时运行而造成不必要的资源竞争,进而减少资源竞争,提高系统性能。
进一步的,本申请实施例提供的虚拟机管理器还在获取到每个第一虚拟CPU的第一特征值和第一物理CPU的第二特征值之后,还可以继续获取至少两个物理CPU中任一物理CPU运行时的最大频率和最小频率,及物理CPU运行时在物理主机上的最大内存总线利用率和最小内存总线利用率;并根据该任一物理CPU对应的物理CPU利用率、最大频率、最小频率、最大内存总线利用率及最小内存总线利用率,获得该任一物理CPU当前工作需要的目标频率,并将该任一物理CPU的当前工作频率调整为目标频率。需要说明的是:由于物理CPU的特征值是会变化的,但在较短的时间内其微小的变化可以忽略不计,所以在较短的时间内,物理CPU维持目标频率不变。
在具体实施过程中,虚拟机管理器可以通过如下公式获得该目标频率:
其中,s(Rcpu)为目标频率,Rcpu为所述物理CPU利用率,fmax为所述物理CPU的最大频率,fmin为所述物理CPU的最小频率,Rbusmax为所最大内存总线利用率,Rbusmin为所述最小内存总线利用率。
通过实验发现,根据物理CPU当前的物理CPU利用率、最大/最小频率及最大/最小内存总线利用率,计算获得的目标频率能够更好的达到能耗性能均衡的技术效果。
实施例二
请参考图4,本申请实施例提供一种调节物理CPU频率的方法,该方法包括:
S401:获取物理CPU当前的CPU利用率及运行参数;
S402:根据所述CPU利用率及所述运行参数,获得所述物理CPU当前工作需要的目标频率,并将所述物理CPU的当前工作频率调整为所述目标频率。
在具体实施过程中,物理CPU的运行参数具体包括:物理CPU工作时能够达到的最大频率和最小频率,及物理CPU在物理主机上的最大内存总线利用率和最小内存总线利用率。根据物理CPU当前的CPU利用率和运行参数,本申请实施例可以通过如下公式获得物理CPU当前工作需要的目标频率:
其中,s(Rcpu)为目标频率,Rcpu为所述CPU利用率,fmax为所述最大频率,fmin为所述最小频率,Rbusmax为所述最大内存总线利用率,Rbusmin为所述最小内存总线利用率。
通过实验发现,根据物理CPU当前的CPU利用率、最大/最小频率及最大/最小内存总线利用率,计算获得的目标频率能够更好的达到能耗性能均衡的技术效果。
实施例三
请参考图5,本申请实施例提供一种电子设备,包括:
虚拟机510,包含至少一个虚拟CPU;
虚拟机管理器520,所述虚拟机管理器520包含特征获取模块521和映射模块522;
其中,所述特征获取模块521用于在当前时间周期内,所述虚拟机管理器520从所述至少两个虚拟CPU中获取待映射的第一虚拟CPU集合,从所述至少两个物理CPU中获取在下一时间周期内待运行任务最少的第一物理CPU;获取所述第一虚拟CPU集合中每个第一虚拟CPU的第一特征值及所述第一物理CPU的第二特征值,所述每个第一虚拟CPU的第一特征值为表征所述第一虚拟CPU在所述当前时间周期的前一时间周期内所映射到的物理CPU在运行任务时的特征,所述第二特征值为表征所述第一物理CPU在所述当前时间周期的前一时间周期内运行任务时的特征;
所述映射模块522用于从所有的所述第一特征值中获取与所述第二特征值匹配的目标特征值,并将所述目标特征值对应的目标虚拟CPU映射到所述第一物理CPU上运行。
在具体实施过程中,所述每个第一虚拟CPU的第一特征值包括:所述每个第一虚拟CPU在当前时间周期的前一时间周期内的虚拟CPU利用率、所述第一虚拟CPU所在虚拟机510上的内存总线对应的内存总线利用率及所述第一虚拟CPU所在虚拟机510上的网络I/O中断数量;
所述第一物理CPU的第二特征值包括:第一物理CPU在当前时间周期的前一时间周期内的物理CPU利用率、第一物理CPU在物理主机上的内存总线的内存总线利用率及第一物理CPU在所述物理主机上的网络I/O中断数量。
在具体实施过程中,所述映射模块522具体用于:
根据所述第二特征值和所述每个第一虚拟CPU的第一特征值,分别获得所述第二特征值和所述每个第一虚拟CPU的第一特征值之间的相似性值;
获取所有相似性值中设定值域范围内的相似性值对应的第一特征值作为与所述第二特征值匹配的目标特征值。
在具体实施过程中,所述映射模块522具体可以用于通过如下公式获得所述相似性值:
DΔab=Σ(raj-rbj)2,raj∈Ra,rbj∈Rb
其中,DΔab表示所述相似性值,Ra表示所述一个第一虚拟CPU的第一特征值,Rb表示所述第二特征值,raj与rbj分别是Ra与Rb中相互对应的任一项参数:所述虚拟CPU利用率与所述物理CPU利用率;所述第一虚拟CPU所在虚拟机510上的内存总线对应的内存总线利用率与第一物理CPU在物理主机上的内存总线的内存总线利用率;所述第一虚拟CPU所在虚拟机510上的网络I/O中断数量与物理CPU在所述物理主机上的网络I/O中断数量;
其中,所有相似性值中小于设定阈值的相似性值对应的第一特征值为所述目标特征值。
在具体实施过程中,所述映射模块522具体也可以用于通过如下公式获得所述相似性值:
DΔab=Σ(rai-rbi)2+[(raK-rbK)/rmax]2,rai、raK∈Ra,rbi、rbK∈Rb
其中,DΔab表示所述相似性值,Ra表示所述一个第一虚拟CPU的第一特征值,Rb表示所述第二特征值,raK为Ra中所述第一虚拟CPU所在虚拟机510上的网络I/O中断数量,rbK为Rb中物理CPU在物理主机上的网络I/O中断数量,rai与rbi分别是Ra与Rb中除了raK、rbK以外相互对应的任一项参数:所述虚拟CPU利用率与所述物理CPU利用率;所述第一虚拟CPU所在虚拟机510上的内存总线对应的内存总线利用率与第一物理CPU在物理主机上的内存总线的内存总线利用率;rmax为所有物理CPU的第二特征值中最大第二网络I/O中断数量;
其中,所有相似性值中小于设定阈值的相似性值对应的第一特征值为所述目标特征值。
在具体实施过程中,所述映射模块522还可以用于:通过如下公式获得所述相似性值:
其中,DΔab表示所述相似性值,Ra表示所述一个第一虚拟CPU的第一特征值,Rb表示所述第二特征值,raj与rbj分别是Ra与Rb中相互对应的任一项参数:所述虚拟CPU利用率与所述物理CPU利用率;所述第一虚拟CPU所在虚拟机510上的内存总线对应的内存总线利用率与第一物理CPU在物理主机上的内存总线的内存总线利用率;所述第一虚拟CPU所在虚拟机510上的网络I/O中断数量与第一物理CPU在所述物理主机上的网络I/O中断数量;
其中,所有相似性值中大于设定阈值的相似性值对应的第一特征值为所述目标特征值。
在具体实施过程中,在所述电子设备还包括:
频率调整模块523,用于在虚拟机管理器520获取所述第一虚拟CPU集合中每个第一虚拟CPU的第一特征值及所述第一物理CPU的第二特征值之后,获取所述至少两个物理CPU中任一物理CPU运行时的最大频率和最小频率,及所述物理CPU运行时在物理主机上的最大内存总线利用率和最小内存总线利用率;根据所述任一物理CPU对应的物理CPU利用率、所述最大频率、所述最小频率、所述最大内存总线利用率及最小内存总线利用率,获得所述任一物理CPU当前工作需要的目标频率,并将所述任一物理CPU的当前工作频率调整为所述目标频率。
在具体实施过程中,所述频率调整模块523具体用于通过如下公式获得所述目标频率:
其中,s(Rcpu)为目标频率,Rcpu为所述物理CPU利用率,fmax为所述物理CPU的最大频率,fmin为所述物理CPU的最小频率,Rbusmax为所最大内存总线利用率,Rbusmin为所述最小内存总线利用率。
前述图1至图3实施例中虚拟CPU与物理CPU之间的映射方法的各种变化方式和具体实例同样适用于本实施例的电子设备,通过前述对获得虚拟CPU与物理CPU之间的映射方法的详细描述,本领域技术人员可以清楚的知道本实施例中电子设备的实施方法,所以为了说明书的简洁,在此不再详述。
实施例四
请参考图6,本申请实施例提供一种电子设备,包括:
获取模块601,用于获取物理CPU当前的CPU利用率及运行参数;
调整模块602,用于根据所述CPU利用率及所述运行参数,获得所述物理CPU当前工作需要的目标频率,并将所述物理CPU的当前工作频率调整为所述目标频率。
在具体实施过程中,所述运行参数具体包括:所述物理CPU工作时能够达到的最大频率和最小频率,及所述物理CPU在物理主机上的最大内存总线利用率和最小内存总线利用率。
在具体实施过程中,所述调整模块602具体用于通过如下公式获得所述目标频率:
其中,s(Rcpu)为目标频率,Rcpu为所述CPU利用率,fmax为所述最大频率,fmin为所述最小频率,Rbusmax为所述最大内存总线利用率,Rbusmin为所述最小内存总线利用率。
前述图4实施例中调节物理CPU频率的方法的各种变化方式和具体实例同样适用于本实施例的电子设备,通过前述对调节物理CPU频率的方法的详细描述,本领域技术人员可以清楚的知道本实施例中电子设备的实施方法,所以为了说明书的简洁,在此不再详述。
实施例五
请参考图7,本申请实施例提供一种电子设备,该电子设备包括:
主板710;
网络适配器720,设置在所述主板710上,包含网络I/O接口;
至少两个物理CPU730,设置在所述主板710上,与所述网络适配器720相连及通过内存总线与存储器740相连;
其中,所述至少两个物理CPU730中的任一物理CPU上运行有一虚拟机管理器,所述至少两个物理CPU730上还运行有至少一个虚拟机,所述至少一个虚拟机上包含至少两个虚拟CPU;
在当前时间周期内,所述虚拟机管理器从所述至少两个虚拟CPU中获取待映射的第一虚拟CPU集合,从所述至少两个物理CPU中获取在下一时间周期内待运行任务最少的第一物理CPU;
所述虚拟机管理器获取所述第一虚拟CPU集合中每个第一虚拟CPU的第一特征值及所述第一物理CPU的第二特征值,所述每个第一虚拟CPU的第一特征值为表征所述第一虚拟CPU在所述当前时间周期的前一时间周期内所映射到的物理CPU在运行任务时的特征,所述第二特征值为表征所述第一物理CPU在所述当前时间周期的前一时间周期内运行任务时的特征;
所述虚拟机管理器从所有的所述第一特征值中获取与所述第二特征值匹配的目标特征值,并将所述目标特征值对应的目标虚拟CPU映射到所述第一物理CPU上运行。
在具体实施过程中,所述每个第一虚拟CPU的第一特征值包括:所述每个第一虚拟CPU在当前时间周期的前一时间周期内的虚拟CPU利用率、所述第一虚拟CPU所在虚拟机上的内存总线对应的内存总线利用率及所述第一虚拟CPU所在虚拟机上的网络I/O中断数量;
所述第一物理CPU的第二特征值包括:第一物理CPU在当前时间周期的前一时间周期内的物理CPU利用率、第一物理CPU在物理主机上的内存总线的内存总线利用率及第一物理CPU在所述物理主机上的网络I/O中断数量。
在具体实施过程中,所述虚拟机管理器从所有的所述第一特征值中获取与所述第二特征值匹配的目标特征值,包括:
根据所述第二特征值和所述每个第一虚拟CPU的第一特征值,分别获得所述第二特征值和所述每个第一虚拟CPU的第一特征值之间的相似性值;
获取所有相似性值中设定值域范围内的相似性值对应的第一特征值作为与所述第二特征值匹配的目标特征值。
在具体实施过程中,所述根据所述第二特征值和所述每个第一虚拟CPU的第一特征值,分别获得所述第二特征值和所述每个第一虚拟CPU的第一特征值之间的相似性值,包括:
通过如下公式获得所述相似性值:
DΔab=Σ(raj-rbj)2,raj∈Ra,rbj∈Rb
其中,DΔab表示所述相似性值,Ra表示所述一个第一虚拟CPU的第一特征值,Rb表示所述第二特征值,raj与rbj分别是Ra与Rb中相互对应的任一项参数:所述虚拟CPU利用率与所述物理CPU利用率;所述第一虚拟CPU所在虚拟机上的内存总线对应的内存总线利用率与第一物理CPU在物理主机上的内存总线的内存总线利用率;所述第一虚拟CPU所在虚拟机上的网络I/O中断数量与物理CPU在所述物理主机上的网络I/O中断数量;
其中,所有相似性值中小于设定阈值的相似性值对应的第一特征值为所述目标特征值。
在具体实施过程中,所述根据所述第二特征值和所述每个第一虚拟CPU的第一特征值,分别获得所述第二特征值和所述每个第一虚拟CPU的第一特征值之间的相似性值,包括:
通过如下公式获得所述相似性值:
DΔab=Σ(rai-rbi)2+[(raK-rbK)/rmax]2,rai、raK∈Ra,rbi、rbK∈Rb
其中,DΔab表示所述相似性值,Ra表示所述一个第一虚拟CPU的第一特征值,Rb表示所述第二特征值,raK为Ra中所述第一虚拟CPU所在虚拟机上的网络I/O中断数量,rbK为Rb中物理CPU在物理主机上的网络I/O中断数量,rai与rbi分别是Ra与Rb中除了raK、rbK以外相互对应的任一项参数:所述虚拟CPU利用率与所述物理CPU利用率;所述第一虚拟CPU所在虚拟机上的内存总线对应的内存总线利用率与第一物理CPU在物理主机上的内存总线的内存总线利用率;rmax为所有物理CPU的第二特征值中最大第二网络I/O中断数量;
其中,所有相似性值中小于设定阈值的相似性值对应的第一特征值为所述目标特征值。
在具体实施过程中,所述根据所述第二特征值和所述每个第一虚拟CPU的第一特征值,分别获得所述第二特征值和所述每个第一虚拟CPU的第一特征值之间的相似性值,包括:
通过如下公式获得所述相似性值:
其中,DΔab表示所述相似性值,Ra表示所述一个第一虚拟CPU的第一特征值,Rb表示所述第二特征值,raj与rbj分别是Ra与Rb中相互对应的任一项参数:所述虚拟CPU利用率与所述物理CPU利用率;所述第一虚拟CPU所在虚拟机上的内存总线对应的内存总线利用率与第一物理CPU在物理主机上的内存总线的内存总线利用率;所述第一虚拟CPU所在虚拟机上的网络I/O中断数量与第一物理CPU在所述物理主机上的网络I/O中断数量;
其中,所有相似性值中大于设定阈值的相似性值对应的第一特征值为所述目标特征值。
在具体实施过程中,在所述虚拟机管理器获取所述第一虚拟CPU集合中每个第一虚拟CPU的第一特征值及所述第一物理CPU的第二特征值之后,所述方法还包括:
获取所述至少两个物理CPU中任一物理CPU运行时的最大频率和最小频率,及所述物理CPU运行时在物理主机上的最大内存总线利用率和最小内存总线利用率;
根据所述任一物理CPU对应的物理CPU利用率、所述最大频率、所述最小频率、所述最大内存总线利用率及最小内存总线利用率,获得所述任一物理CPU当前工作需要的目标频率,并将所述任一物理CPU的当前工作频率调整为所述目标频率。
在具体实施过程中,所述根据所述任一物理CPU对应的第二特征值、所述最大频率、所述最小频率、所述最大内存总线利用率及最小内存总线利用率,获得所述任一物理CPU当前工作需要的目标频率,具体通过如下公式获得所述目标频率:
其中,s(Rcpu)为目标频率,Rcpu为所述物理CPU利用率,fmax为所述物理CPU的最大频率,fmin为所述物理CPU的最小频率,Rbusmax为所最大内存总线利用率,Rbusmin为所述最小内存总线利用率。
前述图1至图3实施例中虚拟CPU与物理CPU之间的映射方法的各种变化方式和具体实例同样适用于本实施例的电子设备,通过前述对获得虚拟CPU与物理CPU之间的映射方法的详细描述,本领域技术人员可以清楚的知道本实施例中电子设备的实施方法,所以为了说明书的简洁,在此不再详述。
实施例六
请参考图8,本申请实施例提供一种电子设备,包括:
主板810;
存储器820;
物理CPU830,设置在所述主板810上,通过内存总线与存储器820相连;
其中,所述物理CPU830用于获取物理CPU830当前的CPU利用率及运行参数;根据所述CPU利用率及所述运行参数,获得所述物理CPU830当前工作需要的目标频率,并将所述物理CPU830的当前工作频率调整为所述目标频率。
在具体实施过程中,所述运行参数具体包括:所述物理CPU830工作时能够达到的最大频率和最小频率,及所述物理CPU830在物理主机上的最大内存总线利用率和最小内存总线利用率。
在具体实施过程中,所述物理CPU830具体用于通过如下公式获得所述目标频率:
其中,s(Rcpu)为目标频率,Rcpu为所述CPU利用率,fmax为所述最大频率,fmin为所述最小频率,Rbusmax为所述最大内存总线利用率,Rbusmin为所述最小内存总线利用率。
前述图4实施例中调节物理CPU频率的方法的各种变化方式和具体实例同样适用于本实施例的电子设备,通过前述对调节物理CPU频率的方法的详细描述,本领域技术人员可以清楚的知道本实施例中电子设备的实施方法,所以为了说明书的简洁,在此不再详述。
本申请实施例中的一个或多个技术方案,可以实现如下技术效果:
通过获取虚拟CPU和物理CPU的第一特征值和第二特征值,根据第一特征值和第二特征值获得与虚拟CPU当前运行任务的任务类型匹配的目标物理CPU,将虚拟CPU映射到该物理CPU上运行,使得相似的任务在相同的物理CPU上运行,避免不同的物理CPU运行相似的任务造成资源竞争,从而解决了现有技术中虚拟CPU映射到物理CPU时存在的资源竞争、系统整体性能下降的技术问题,进而减少资源竞争、提高系统性能。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。