1.一种云计算中VCPU线程调度方法,应用在Hypervisor中,其特征在于,所述方法包括以下步骤:S1,获取物理服务器中的所有物理CPU,并判断每个物理CPU是否支持并开启超线程,若是,则将逻辑Core作为目标Core;否则,则将物理服务器的物理Core作为目标Core;
S2,统计预设时间内每个VCPU线程在执行过程中发生VM Exit的频率以及VCPU线程的平均CPU占用率,当一个VCPU线程发生VM Exit的频率大于物理服务器中非VCPU线程的调度平均频率,且VCPU线程的CPU占用率大于平均VCPU线程的CPU占用率,则将VCPU线程作为待绑定VCPU线程;
S3,将属于同一个虚拟机的待绑定VCPU绑定到属于同一个物理CPU的一个或多个目标Core。
2.如权利要求1所述的方法,其特征在于,所述将属于同一个虚拟机的待绑定VCPU绑定到属于同一个物理CPU的一个或多个目标Core,具体为:S31,获取含有所述待绑定VCPU线程的虚拟机个数,以及所述物理服务器的物理CPU个数,将所述含有所述待绑定VCPU线程的虚拟机分为N组,建立每组虚拟机与每个物理CPU的对应关系,其中,N为正整数;
S32,对于每个物理CPU,执行如下操作:获取每个物理CPU对应的虚拟机组中待绑定VCPU线程,根据每个待绑定VCPU线程的VM Exit频率将待绑定VCPU线程分配到物理CPU中的目标Core中,建立所述待绑定VCPU线程与所述目标Core的绑定关系。
3.如权利要求2所述的方法,其特征在于,所述将所述含有所述待绑定VCPU线程的虚拟机分为N组,建立每组虚拟机与每个物理CPU的对应关系,具体为:若所述物理CPU的个数为1,则将含有所述待绑定VCPU线程的虚拟机分为一组,建立虚拟机与物理CPU的对应关系;
若所述物理CPU的个数大于1,则获取含有所述待绑定VCPU线程的虚拟机的CPU利用率以及每个物理CPU的利用率,按照虚拟机的CPU利用率从大到小的顺序排序,依次将虚拟机分配给利用率最低的物理CPU,根据分配结果建立虚拟机与物理CPU的对应关系。
4.如权利要求1所述的方法,其特征在于,所述将属于同一个虚拟机的待绑定VCPU绑定到属于同一个物理CPU的一个或多个目标Core,具体为:获取含有所述待绑定VCPU线程的VM进程在物理服务器中占用的CPU资源,根据所述在物理服务器中占用的CPU资源将VM进程均衡负载到物理CPU上,建立物理CPU与所述含有所述待绑定VCPU线程的VM进程对应关系;
若所述物理CPU中的目标Core为物理Core,则根据物理Core、所述待绑定VCPU线程的CPU资源占用率将VCPU线程绑定到目标Core;否则,根据所述待绑定VCPU线程的CPU资源占用率、所述逻辑Core的利用率和所述逻辑Core所属的物理Core的利用率将VCPU线程绑定到逻辑Core。
5.如权利要求4所述的方法,其特征在于,所述根据所述待绑定VCPU线程的CPU资源占用率、所述逻辑Core的利用率和所述逻辑Core所属的物理Core的利用率将VCPU线程绑定到逻辑Core,具体为:计算逻辑Core的利用率与逻辑Core所属的物理Core的利用率的乘积,将所述乘积作为逻辑Core的实际利用率,根据待绑定VCPU线程的CPU资源占用率和所述实际利用率将待绑定VCPU线程均衡负载到逻辑Core。
6.一种云计算中VCPU线程调度系统,所述系统位于Hypervisor中,其特征在于,所述系统包括以下模块:目标Core获取模块,用于获取物理服务器中的所有物理CPU,并判断每个物理CPU是否支持并开启超线程,若是,则将逻辑Core作为目标Core;否则,则将物理服务器的物理Core作为目标Core;
待绑定VCPU线程获取模块,用于统计预设时间内每个VCPU线程在执行过程中发生VM Exit的频率以及VCPU线程的平均CPU占用率,当一个VCPU线程发生VM Exit的频率大于物理服务器中非VCPU线程的调度平均频率,且VCPU线程的CPU占用率大于平均VCPU线程的CPU占用率,则将VCPU线程作为待绑定VCPU线程;
绑定模块,用于将属于同一个虚拟机的待绑定VCPU绑定到属于同一个物理CPU的一个或多个目标Core。
7.如权利要求6所述的系统,其特征在于,所述将属于同一个虚拟机的待绑定VCPU绑定到属于同一个物理CPU的一个或多个目标Core,具体为:获取含有所述待绑定VCPU线程的虚拟机个数,以及所述物理服务器的物理CPU个数,将所述含有所述待绑定VCPU线程的虚拟机分为N组,建立每组虚拟机与每个物理CPU的对应关系,其中,N为正整数;
对于每个物理CPU,执行如下操作:获取每个物理CPU对应的虚拟机组中待绑定VCPU线程,根据每个待绑定VCPU线程的VM Exit频率将待绑定VCPU线程分配到物理CPU中的目标Core中,建立所述待绑定VCPU线程与所述目标Core的绑定关系。
8.如权利要求6所述的系统,其特征在于,所述将所述含有所述待绑定VCPU线程的虚拟机分为N组,建立每组虚拟机与每个物理CPU的对应关系,具体为:若所述物理CPU的个数为1,则将含有所述待绑定VCPU线程的虚拟机分为一组,建立虚拟机与物理CPU的对应关系;
若所述物理CPU的个数大于1,则获取含有所述待绑定VCPU线程的虚拟机的CPU利用率以及每个物理CPU的利用率,按照虚拟机的CPU利用率从大到小的顺序排序,依次将虚拟机分配给利用率最低的物理CPU,根据分配结果建立虚拟机与物理CPU的对应关系。
9.如权利要求6所述的系统,其特征在于,所述将属于同一个虚拟机的待绑定VCPU绑定到属于同一个物理CPU的一个或多个目标Core,具体为:获取含有所述待绑定VCPU线程的VM进程在物理服务器中占用的CPU资源,根据所述在物理服务器中占用的CPU资源将VM进程均衡负载到物理CPU上,建立物理CPU与所述含有所述待绑定VCPU线程的VM进程对应关系;
若所述物理CPU中的目标Core为物理Core,则根据物理Core、所述待绑定VCPU线程的CPU资源占用率将VCPU线程绑定到目标Core;否则,根据所述待绑定VCPU线程的CPU资源占用率、所述逻辑Core的利用率和所述逻辑Core所属的物理Core的利用率将VCPU线程绑定到逻辑Core。
10.如权利要求8所述的系统,其特征在于,所述根据所述待绑定VCPU线程的CPU资源占用率、所述逻辑Core的利用率和所述逻辑Core所属的物理Core的利用率将VCPU线程绑定到逻辑Core,具体为:计算逻辑Core的利用率与逻辑Core所属的物理Core的利用率的乘积,将所述乘积作为逻辑Core的实际利用率,根据待绑定VCPU线程的CPU资源占用率和所述实际利用率将待绑定VCPU线程均衡负载到逻辑Core。