基于虚拟化技术的处理器调度方法和处理器调度装置转让专利

申请号 : CN202110481265.8

文献号 : CN112988399B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 朱永强伍文成

申请人 : 成都网安科技发展有限公司

摘要 :

本申请提供的基于虚拟化技术的处理器调度方法和处理器调度装置,涉及虚拟化技术领域。在本申请中,首先,获取预先为每一个虚拟机配置的优先权参数。其次,基于优先权参数分别确定每一个虚拟机包括的每一个虚拟处理器的初始资源消耗信用值,其中,初始资源消耗信用值用于表征虚拟处理器对至少一个物理处理器的处理器资源的初始占用比例。然后,基于初始资源消耗信用值对虚拟处理器执行调度操作,以将待运行的至少一个虚拟处理器分配给至少一个物理处理器运行。基于上述方法,可以改善现有技术中物理处理器的资源分配不合理的问题。

权利要求 :

1.一种基于虚拟化技术的处理器调度方法,其特征在于,应用于电子设备,所述电子设备具有至少一个物理处理器、部署有至少一个虚拟机,每一个所述虚拟机上部署有至少一个虚拟处理器,所述方法包括:

获取预先为每一个所述虚拟机配置的优先权参数;

基于所述优先权参数分别确定每一个所述虚拟机包括的每一个虚拟处理器的初始资源消耗信用值,其中,所述初始资源消耗信用值用于表征所述虚拟处理器对所述至少一个物理处理器的处理器资源的初始占用比例;

基于所述初始资源消耗信用值对所述虚拟处理器执行调度操作,以将待运行的至少一个所述虚拟处理器分配给所述至少一个物理处理器运行;

其中,所述基于所述初始资源消耗信用值对所述虚拟处理器执行调度操作,以将待运行的至少一个所述虚拟处理器分配给所述至少一个物理处理器运行的步骤,包括:基于每一个所述虚拟处理器的状态信息和预先确定的状态判断条件,确定每一个所述虚拟处理器是否属于目标虚拟处理器;

针对每一个确定的目标虚拟处理器,基于该目标虚拟处理器的初始资源消耗信用值和该目标虚拟处理器所属的虚拟机的优先权参数,确定该目标虚拟处理器的优先级权值,其中,所述优先级权值用于表征所述目标虚拟处理器被分配给所述至少一个物理处理器运行的优先级;

基于所述优先级权值将至少一个所述目标虚拟处理器分配给所述至少一个物理处理器运行;

其中,所述电子设备具有多个物理处理器,所述方法还包括:判断是否达到预先确定的负载均衡条件;

若达到所述负载均衡条件,则针对每一个所述物理处理器,在待运行于该物理处理器的目标虚拟处理器中,确定第一目标虚拟处理器的第一数量和第二目标虚拟处理器的第二数量,其中,所述第一目标虚拟处理器的优先权参数大于预设的优先权阈值,所述第二目标虚拟处理器的优先权参数小于或等于所述优先权阈值;

针对每一个所述物理处理器,基于待运行于该物理处理器的虚拟处理器的数量和对应的所述第一数量得到第一比例值,并基于待运行于该物理处理器的虚拟处理器的数量和对应的所述第二数量得到第二比例值;

在得到的多个第一比例值中,确定出最大的第一比例值和最小的第一比例值,并基于该最大的第一比例值和该最小的第一比例值,判断是否需要对该最大的第一比例值对应的物理处理器和该最小的第一比例值对应的物理处理器待运行的第一目标虚拟处理器执行第一负载均衡操作;

在得到的多个第二比例值中,确定出最大的第二比例值和最小的第二比例值,并基于该最大的第二比例值和该最小的第二比例值,判断是否需要对该最大的第二比例值对应的物理处理器和该最小的第二比例值对应的物理处理器上待运行的第二目标虚拟处理器执行第二负载均衡操作;

若需要执行所述第一负载均衡操作,则将所述最大的第一比例值对应的物理处理器待运行的第一目标数量个第一目标虚拟处理器分配给所述最小的第一比例值对应的物理处理器,作为该最小的第一比例值对应的物理处理器待运行的目标虚拟处理器,其中,所述第一目标数量基于所述最大的第一比例值和所述最小的第一比例值确定;

若需要执行所述第二负载均衡操作,则将所述最大的第二比例值对应的物理处理器待运行的第二目标数量个第二目标虚拟处理器分配给所述最小的第二比例值对应的物理处理器,作为该最小的第二比例值对应的物理处理器待运行的目标虚拟处理器,其中,所述第二目标数量基于所述最大的第二比例值和所述最小的第二比例值确定。

2.根据权利要求1所述的基于虚拟化技术的处理器调度方法,其特征在于,所述基于每一个所述虚拟处理器的状态信息和预先确定的状态判断条件,确定每一个所述虚拟处理器是否属于目标虚拟处理器的步骤,包括:确定每一个所述虚拟处理器的状态信息,其中,若所述虚拟处理器用于处理输入输出任务、资源消耗信用值大于预设的信用阈值且未处于空闲状态,则所述虚拟处理器具有第一状态信息,若所述虚拟处理器用于处理计算任务、资源消耗信用值大于预设的信用阈值且未处于空闲状态,则所述虚拟处理器具有第二状态信息,若所述虚拟处理器的资源消耗信用值小于所述信用阈值且未处于空闲状态,则所述虚拟处理器具有第三状态信息,若所述虚拟处理器处于空闲状态,则所述虚拟处理器具有第四状态信息;

分别判断每一个所述虚拟处理器是否具有所述第一状态信息;

若所述虚拟处理器具有所述第一状态信息,则确定该虚拟处理器属于目标虚拟处理器;

若所述虚拟处理器具有所述第二状态信息、所述第三状态信息或所述第四状态信息,则确定该虚拟处理器不属于目标虚拟处理器。

3.根据权利要求2所述的基于虚拟化技术的处理器调度方法,其特征在于,所述基于所述初始资源消耗信用值对所述虚拟处理器执行调度操作,以将待运行的至少一个所述虚拟处理器分配给所述至少一个物理处理器运行的步骤,还包括:判断是否存在具有所述第一状态信息的虚拟处理器或是否存在具有所述第二状态信息的虚拟处理器;

若不存在具有所述第一状态信息的虚拟处理器,且不存在具有所述第二状态信息的虚拟处理器,则针对每一个所述虚拟处理器执行目标操作:其中,所述目标操作包括:

针对具有所述第三状态信息的每一个虚拟处理器,则基于该虚拟处理器的初始资源消耗信用值和当前具有的资源消耗信用值进行叠加处理,得到该虚拟处理器重新分配后的资源消耗信用值;

针对具有所述第四状态信息的每一个虚拟处理器,则将该虚拟处理器的初始资源消耗信用值作为重新分配后的资源消耗信用值。

4.根据权利要求1所述的基于虚拟化技术的处理器调度方法,其特征在于,所述基于所述初始资源消耗信用值对所述虚拟处理器执行调度操作,以将待运行的至少一个所述虚拟处理器分配给所述至少一个物理处理器运行的步骤,还包括:在将至少一个所述目标虚拟处理器分配给所述至少一个物理处理器运行之后,统计运行中的每一个所述目标虚拟处理器的持续运行时长;

针对运行中的每一个所述目标虚拟处理器,基于该目标虚拟处理器的持续运行时长,对该目标虚拟处理器当前的资源消耗信用值进行更新处理,得到更新后的资源消耗信用值,其中,所述更新后的资源消耗信用值小于所述当前的资源消耗信用值。

5.根据权利要求4所述的基于虚拟化技术的处理器调度方法,其特征在于,所述基于所述初始资源消耗信用值对所述虚拟处理器执行调度操作,以将待运行的至少一个所述虚拟处理器分配给所述至少一个物理处理器运行的步骤,还包括:在将至少一个所述目标虚拟处理器分配给所述至少一个物理处理器运行之后,针对运行中的每一个所述目标虚拟处理器,判断该目标虚拟处理器的更新后的资源消耗信用值是否小于预设的信用阈值;

若所述更新后的资源消耗信用值小于所述信用阈值,则在所述至少一个物理处理器上停止运行对应的目标虚拟处理器;

若所述更新后的资源消耗信用值大于或等于所述信用阈值,则判断对应的目标虚拟处理器在所述至少一个物理处理器上的持续运行时长是否大于或等于预设时长;

若所述持续运行时长大于或等于所述预设时长,则在所述物理处理器上停止运行对应的目标虚拟处理器;

若所述持续运行时长小于所述预设时长,则在所述物理处理器上继续运行对应的目标虚拟处理器。

6.根据权利要求5所述的基于虚拟化技术的处理器调度方法,其特征在于,所述若所述持续运行时长大于或等于所述预设时长,则在所述物理处理器上停止运行对应的目标虚拟处理器的步骤,包括:

基于所述持续运行时长对应的目标虚拟处理器的更新后的资源消耗信用值对该目标虚拟处理器的优先权值进行更新,得到更新后的优先权值;

基于所述更新后的优先权值将对应的目标虚拟处理器插入预先构建的红黑树中进行保存,并从该红黑树中将待运行的至少一个所述目标虚拟处理器分配给所述至少一个物理处理器运行,其中,该红黑树用于按照基于所述优先权值确定的先后顺序保存待运行的每一个所述目标虚拟处理器。

7.根据权利要求1所述的基于虚拟化技术的处理器调度方法,其特征在于,所述负载均衡条件包括第一负载均衡条件和第二负载均衡条件,所述第一负载均衡条件用于确定是否执行确定第一目标虚拟处理器的第一数量的步骤,所述第二负载均衡条件用于确定是否执行确定第二目标虚拟处理器的第二数量的步骤,所述方法还包括:在每一次判定不需要执行所述第一负载均衡操作之后,确定相邻的前N次判断结果是否都为不需要执行所述第一负载均衡操作,并在每一次判定不需要执行所述第二负载均衡操作之后,确定相邻的前N次判断结果是否都为不需要执行所述第二负载均衡操作;

若相邻的前N次判断结果都为不需要执行所述第一负载均衡操作,则对所述第一负载均衡条件进行第一更新处理,其中,所述第一更新处理包括增大所述第一负载均衡条件中的第一预设时长,所述第一预设时长表征相邻两次执行所述确定第一目标虚拟处理器的第一数量的步骤的间隔;

若相邻的前N次判断结果都为不需要执行所述第二负载均衡操作,则对所述第二负载均衡条件进行第二更新处理,其中,所述第二更新处理包括增加所述第二负载均衡条件中的第二预设时长,所述第二预设时长表征相邻两次执行所述确定第二目标虚拟处理器的第二数量的步骤的间隔。

8.一种基于虚拟化技术的处理器调度装置,其特征在于,应用于电子设备,所述电子设备具有至少一个物理处理器、部署有至少一个虚拟机,每一个所述虚拟机上部署有至少一个虚拟处理器,所述装置包括:

参数获取模块,用于获取预先为每一个所述虚拟机配置的优先权参数;

信用值确定模块,用于基于所述优先权参数分别确定每一个所述虚拟机包括的每一个虚拟处理器的初始资源消耗信用值,其中,所述初始资源消耗信用值用于表征所述虚拟处理器对所述至少一个物理处理器的处理器资源的初始占用比例;

调度操作执行模块,用于基于所述初始资源消耗信用值对所述虚拟处理器执行调度操作,以将待运行的至少一个所述虚拟处理器分配给所述至少一个物理处理器运行;

其中,所述调度操作执行模块具体用于:基于每一个所述虚拟处理器的状态信息和预先确定的状态判断条件,确定每一个所述虚拟处理器是否属于目标虚拟处理器;

针对每一个确定的目标虚拟处理器,基于该目标虚拟处理器的初始资源消耗信用值和该目标虚拟处理器所属的虚拟机的优先权参数,确定该目标虚拟处理器的优先级权值,其中,所述优先级权值用于表征所述目标虚拟处理器被分配给所述至少一个物理处理器运行的优先级;

基于所述优先级权值将至少一个所述目标虚拟处理器分配给所述至少一个物理处理器运行;

其中,所述电子设备具有多个物理处理器,所述装置还用于:判断是否达到预先确定的负载均衡条件;

若达到所述负载均衡条件,则针对每一个所述物理处理器,在待运行于该物理处理器的目标虚拟处理器中,确定第一目标虚拟处理器的第一数量和第二目标虚拟处理器的第二数量,其中,所述第一目标虚拟处理器的优先权参数大于预设的优先权阈值,所述第二目标虚拟处理器的优先权参数小于或等于所述优先权阈值;

针对每一个所述物理处理器,基于待运行于该物理处理器的虚拟处理器的数量和对应的所述第一数量得到第一比例值,并基于待运行于该物理处理器的虚拟处理器的数量和对应的所述第二数量得到第二比例值;

在得到的多个第一比例值中,确定出最大的第一比例值和最小的第一比例值,并基于该最大的第一比例值和该最小的第一比例值,判断是否需要对该最大的第一比例值对应的物理处理器和该最小的第一比例值对应的物理处理器待运行的第一目标虚拟处理器执行第一负载均衡操作;

在得到的多个第二比例值中,确定出最大的第二比例值和最小的第二比例值,并基于该最大的第二比例值和该最小的第二比例值,判断是否需要对该最大的第二比例值对应的物理处理器和该最小的第二比例值对应的物理处理器上待运行的第二目标虚拟处理器执行第二负载均衡操作;

若需要执行所述第一负载均衡操作,则将所述最大的第一比例值对应的物理处理器待运行的第一目标数量个第一目标虚拟处理器分配给所述最小的第一比例值对应的物理处理器,作为该最小的第一比例值对应的物理处理器待运行的目标虚拟处理器,其中,所述第一目标数量基于所述最大的第一比例值和所述最小的第一比例值确定;

若需要执行所述第二负载均衡操作,则将所述最大的第二比例值对应的物理处理器待运行的第二目标数量个第二目标虚拟处理器分配给所述最小的第二比例值对应的物理处理器,作为该最小的第二比例值对应的物理处理器待运行的目标虚拟处理器,其中,所述第二目标数量基于所述最大的第二比例值和所述最小的第二比例值确定。

说明书 :

基于虚拟化技术的处理器调度方法和处理器调度装置

技术领域

[0001] 本申请涉及虚拟化技术领域,具体而言,涉及一种基于虚拟化技术的处理器调度方法和处理器调度装置。

背景技术

[0002] 随着信息科技领域的不断发展,虚拟化技术的应用也不断拓展。例如,在云计算领域,虚拟化技术通过对实际物理资源的抽象,可以形成一个包含多类别的虚拟计算资源池,
实现多种不同的工作方式。
[0003] 其中,虚拟化技术的核心部分是虚拟机监控器(Virtual Machine Monitor,VMM),VMM将硬件抽象层模拟为多个虚拟硬件抽象层,为上层客户机提供硬件基础。VMM对物理资
源的虚拟可以归结为处理器虚拟化(CPU虚拟化)、内存虚拟化和I/O虚拟化三个主要任务。
处理器虚拟化是VMM中最核心的部分,因为访问内存或者I/O的指令本身就是敏感指令,所
以内存虚拟化与I/O虚拟化都依赖于处理器虚拟化的正确实现。与传统操作系统不同的是,
虚拟机的虚拟化CPU并不直接拥有对物理CPU的调度权限,虚拟化CPU需要通过VMM的调度算
法来实现对物理CPU的占有,所以一个合适的调度算法将决定虚拟机系统的执行效率与资
源利用率。
[0004] 但是,经发明人研究发现,在现有的虚拟化技术中,在对物理处理器的资源进行分配时,存在分配不合理的问题。

发明内容

[0005] 有鉴于此,本申请的目的在于提供一种基于虚拟化技术的处理器调度方法和处理器调度装置,以改善现有的虚拟化技术中物理处理器的资源分配不合理的问题。
[0006] 为实现上述目的,本申请实施例采用如下技术方案:
[0007] 一种基于虚拟化技术的处理器调度方法,应用于电子设备,所述电子设备具有至少一个物理处理器、部署有至少一个虚拟机,每一个所述虚拟机上部署有至少一个虚拟处
理器,所述方法包括:
[0008] 获取预先为每一个所述虚拟机配置的优先权参数;
[0009] 基于所述优先权参数分别确定每一个所述虚拟机包括的每一个虚拟处理器的初始资源消耗信用值,其中,所述初始资源消耗信用值用于表征所述虚拟处理器对所述至少
一个物理处理器的处理器资源的初始占用比例;
[0010] 基于所述初始资源消耗信用值对所述虚拟处理器执行调度操作,以将待运行的至少一个所述虚拟处理器分配给所述至少一个物理处理器运行。
[0011] 在本申请实施例较佳的选择中,在上述基于虚拟化技术的处理器调度方法中,所述基于所述初始资源消耗信用值对所述虚拟处理器执行调度操作,以将待运行的至少一个
所述虚拟处理器分配给所述至少一个物理处理器运行的步骤,包括:
[0012] 基于每一个所述虚拟处理器的状态信息和预先确定的状态判断条件,确定每一个所述虚拟处理器是否属于目标虚拟处理器;
[0013] 针对每一个确定的目标虚拟处理器,基于该目标虚拟处理器的初始资源消耗信用值和该目标虚拟处理器所属的虚拟机的优先权参数,确定该目标虚拟处理器的优先级权
值,其中,所述优先级权值用于表征所述目标虚拟处理器被分配给所述至少一个物理处理
器运行的优先级;
[0014] 基于所述优先级权值将至少一个所述目标虚拟处理器分配给所述至少一个物理处理器运行。
[0015] 在本申请实施例较佳的选择中,在上述基于虚拟化技术的处理器调度方法中,所述基于每一个所述虚拟处理器的状态信息和预先确定的状态判断条件,确定每一个所述虚
拟处理器是否属于目标虚拟处理器的步骤,包括:
[0016] 确定每一个所述虚拟处理器的状态信息,其中,若所述虚拟处理器用于处理输入输出任务、资源消耗信用值大于预设的信用阈值且未处于空闲状态,则所述虚拟处理器具
有第一状态信息,若所述虚拟处理器用于处理计算任务、资源消耗信用值大于预设的信用
阈值且未处于空闲状态,则所述虚拟处理器具有第二状态信息,若所述虚拟处理器的资源
消耗信用值小于所述信用阈值且未处于空闲状态,则所述虚拟处理器具有第三状态信息,
若所述虚拟处理器处于空闲状态,则所述虚拟处理器具有第四状态信息;
[0017] 分别判断每一个所述虚拟处理器是否具有所述第一状态信息;
[0018] 若所述虚拟处理器具有所述第一状态信息,则确定该虚拟处理器属于目标虚拟处理器;
[0019] 若所述虚拟处理器具有所述第二状态信息、所述第三状态信息或所述第四状态信息,则确定该虚拟处理器不属于目标虚拟处理器。
[0020] 在本申请实施例较佳的选择中,在上述基于虚拟化技术的处理器调度方法中,所述基于所述初始资源消耗信用值对所述虚拟处理器执行调度操作,以将待运行的至少一个
所述虚拟处理器分配给所述至少一个物理处理器运行的步骤,还包括:
[0021] 判断是否存在具有所述第一状态信息的虚拟处理器或是否存在具有所述第二状态信息的虚拟处理器;
[0022] 若不存在具有所述第一状态信息的虚拟处理器,且不存在具有所述第二状态信息的虚拟处理器,则针对每一个所述虚拟处理器执行目标操作:
[0023] 其中,所述目标操作包括:
[0024] 针对具有所述第三状态信息的每一个虚拟处理器,则基于该虚拟处理器的初始资源消耗信用值和当前具有的资源消耗信用值进行叠加处理,得到该虚拟处理器重新分配后
的资源消耗信用值;
[0025] 针对具有所述第四状态信息的每一个虚拟处理器,则将该虚拟处理器的初始资源消耗信用值作为重新分配后的资源消耗信用值。
[0026] 在本申请实施例较佳的选择中,在上述基于虚拟化技术的处理器调度方法中,所述基于所述初始资源消耗信用值对所述虚拟处理器执行调度操作,以将待运行的至少一个
所述虚拟处理器分配给所述至少一个物理处理器运行的步骤,还包括:
[0027] 在将至少一个所述目标虚拟处理器分配给所述至少一个物理处理器运行之后,统计运行中的每一个所述目标虚拟处理器的持续运行时长;
[0028] 针对运行中的每一个所述目标虚拟处理器,基于该目标虚拟处理器的持续运行时长,对该目标虚拟处理器当前的资源消耗信用值进行更新处理,得到更新后的资源消耗信
用值,其中,所述更新后的资源消耗信用值小于所述当前的资源消耗信用值。
[0029] 在本申请实施例较佳的选择中,在上述基于虚拟化技术的处理器调度方法中,所述基于所述初始资源消耗信用值对所述虚拟处理器执行调度操作,以将待运行的至少一个
所述虚拟处理器分配给所述至少一个物理处理器运行的步骤,还包括:
[0030] 在将至少一个所述目标虚拟处理器分配给所述至少一个物理处理器运行之后,针对运行中的每一个所述目标虚拟处理器,判断该目标虚拟处理器的更新后的资源消耗信用
值是否小于预设的信用阈值;
[0031] 若所述更新后的资源消耗信用值小于所述信用阈值,则在所述至少一个物理处理器上停止运行对应的目标虚拟处理器;
[0032] 若所述更新后的资源消耗信用值大于或等于所述信用阈值,则判断对应的目标虚拟处理器在所述至少一个物理处理器上的持续运行时长是否大于或等于预设时长;
[0033] 若所述持续运行时长大于或等于所述预设时长,则在所述物理处理器上停止运行对应的目标虚拟处理器;
[0034] 若所述持续运行时长小于所述预设时长,则在所述物理处理器上继续运行对应的目标虚拟处理器。
[0035] 在本申请实施例较佳的选择中,在上述基于虚拟化技术的处理器调度方法中,所述若所述持续运行时长大于或等于所述预设时长,则在所述物理处理器上停止运行对应的
目标虚拟处理器的步骤,包括:
[0036] 基于所述持续运行时长对应的目标虚拟处理器的更新后的资源消耗信用值对该目标虚拟处理器的优先权值进行更新,得到更新后的优先权值;
[0037] 基于所述更新后的优先权值将对应的目标虚拟处理器插入预先构建的红黑树中进行保存,并从该红黑树中将待运行的至少一个所述目标虚拟处理器分配给所述至少一个
物理处理器运行,其中,该红黑树用于按照基于所述优先权值确定的先后顺序保存待运行
的每一个所述目标虚拟处理器。
[0038] 在本申请实施例较佳的选择中,在上述基于虚拟化技术的处理器调度方法中,所述电子设备具有多个物理处理器,所述方法还包括:
[0039] 判断是否达到预先确定的负载均衡条件;
[0040] 若达到所述负载均衡条件,则针对每一个所述物理处理器,在待运行于该物理处理器的目标虚拟处理器中,确定第一目标虚拟处理器的第一数量和第二目标虚拟处理器的
第二数量,其中,所述第一目标虚拟处理器的优先权参数大于预设的优先权阈值,所述第二
目标虚拟处理器的优先权参数小于或等于所述优先权阈值;
[0041] 针对每一个所述物理处理器,基于待运行于该物理处理器的虚拟处理器的数量和对应的所述第一数量得到第一比例值,并基于待运行于该物理处理器的虚拟处理器的数量
和对应的所述第二数量得到第二比例值;
[0042] 在得到的多个第一比例值中,确定出最大的第一比例值和最小的第一比例值,并基于该最大的第一比例值和该最小的第一比例值,判断是否需要对该最大的第一比例值对
应的物理处理器和该最小的第一比例值对应的物理处理器待运行的第一目标虚拟处理器
执行第一负载均衡操作;
[0043] 在得到的多个第二比例值中,确定出最大的第二比例值和最小的第二比例值,并基于该最大的第二比例值和该最小的第二比例值,判断是否需要对该最大的第二比例值对
应的物理处理器和该最小的第二比例值对应的物理处理器上待运行的第二目标虚拟处理
器执行第二负载均衡操作;
[0044] 若需要执行所述第一负载均衡操作,则将所述最大的第一比例值对应的物理处理器待运行的第一目标数量个第一目标虚拟处理器分配给所述最小的第一比例值对应的物
理处理器,作为该最小的第一比例值对应的物理处理器待运行的目标虚拟处理器,其中,所
述第一目标数量基于所述最大的第一比例值和所述最小的第一比例值确定;
[0045] 若需要执行所述第二负载均衡操作,则将所述最大的第二比例值对应的物理处理器待运行的第二目标数量个第二目标虚拟处理器分配给所述最小的第二比例值对应的物
理处理器,作为该最小的第二比例值对应的物理处理器待运行的目标虚拟处理器,其中,所
述第二目标数量基于所述最大的第二比例值和所述最小的第二比例值确定。
[0046] 在本申请实施例较佳的选择中,在上述基于虚拟化技术的处理器调度方法中,所述负载均衡条件包括第一负载均衡条件和第二负载均衡条件,所述第一负载均衡条件用于
确定是否执行确定第一目标虚拟处理器的第一数量的步骤,所述第二负载均衡条件用于确
定是否执行确定第二目标虚拟处理器的第二数量的步骤,所述方法还包括:
[0047] 在每一次判定不需要执行所述第一负载均衡操作之后,确定相邻的前N次判断结果是否都为不需要执行所述第一负载均衡操作,并在每一次判定不需要执行所述第二负载
均衡操作之后,确定相邻的前N次判断结果是否都为不需要执行所述第二负载均衡操作;
[0048] 若相邻的前N次判断结果都为不需要执行所述第一负载均衡操作,则对所述第一负载均衡条件进行第一更新处理,其中,所述第一更新处理包括增大所述第一负载均衡条
件中的第一预设时长,所述第一预设时长表征相邻两次执行所述确定第一目标虚拟处理器
的第一数量的步骤的间隔;
[0049] 若相邻的前N次判断结果都为不需要执行所述第二负载均衡操作,则对所述第二负载均衡条件进行第二更新处理,其中,所述第二更新处理包括增加所述第二负载均衡条
件中的第二预设时长,所述第二预设时长表征相邻两次执行所述确定第二目标虚拟处理器
的第二数量的步骤的间隔。
[0050] 本申请实施例还提供了一种基于虚拟化技术的处理器调度装置,应用于电子设备,所述电子设备具有至少一个物理处理器、部署有至少一个虚拟机,每一个所述虚拟机上
部署有至少一个虚拟处理器,所述装置包括:
[0051] 参数获取模块,用于获取预先为每一个所述虚拟机配置的优先权参数;
[0052] 信用值确定模块,用于基于所述优先权参数分别确定每一个所述虚拟机包括的每一个虚拟处理器的初始资源消耗信用值,其中,所述初始资源消耗信用值用于表征所述虚
拟处理器对所述至少一个物理处理器的处理器资源的初始占用比例;
[0053] 调度操作执行模块,用于基于所述初始资源消耗信用值对所述虚拟处理器执行调度操作,以将待运行的至少一个所述虚拟处理器分配给所述至少一个物理处理器运行。
[0054] 本申请提供的基于虚拟化技术的处理器调度方法和处理器调度装置,通过对每一个虚拟机配置优先权参数,使得可以基于配置的优先权参数确定虚拟机上部署的虚拟处理
器的初始资源消耗信用值,从而可以基于确定初始资源消耗信用值对虚拟处理器执行调度
操作,以将待运行的虚拟处理器分配给物理处理器运行。基于此,由于在对虚拟处理器执行
调度操作时,考虑基于优先权参数确定的初始资源消耗信用值,因而,对于具有不同初始资
源消耗信用值的虚拟处理器可以形成不同的分配次序,例如具有高初始资源消耗信用值的
分配次序可以在前,以得到及时的处理,从而改善现有的虚拟化技术中物理处理器的资源
分配不合理的问题。
[0055] 为使本申请的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。

附图说明

[0056] 图1为本申请实施例提供的电子设备的结构框图。
[0057] 图2为本申请实施例提供的基于虚拟化技术的处理器调度方法包括的各步骤的流程示意图。
[0058] 图3为本申请实施例提供的基于虚拟化技术的处理器调度装置包括的各功能模块的方框示意图。
[0059] 图标:10‑电子设备;12‑存储器;14‑处理器;100‑基于虚拟化技术的处理器调度装置;110‑参数获取模块;120‑信用值确定模块;130‑调度操作执行模块。

具体实施方式

[0060] 为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例只
是本申请的一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本申请
实施例的组件可以以各种不同的配置来布置和设计。
[0061] 因此,以下对在附图中提供的本申请的实施例的详细描述并非旨在限制要求保护的本申请的范围,而是仅仅表示本申请的选定实施例。基于本申请中的实施例,本领域普通
技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范
围。
[0062] 如图1所示,本申请实施例提供了一种电子设备10,可以包括存储器12、处理器14和基于虚拟化技术的处理器调度装置100。
[0063] 其中,所述存储器12和处理器14之间直接或间接地电性连接,以实现数据的传输或交互。例如,相互之间可通过一条或多条通讯总线或信号线实现电性连接。所述基于虚拟
化技术的处理器调度装置100包括至少一个可以软件或固件(firmware)的形式存储于所述
存储器12中的软件功能模块。所述处理器14用于执行所述存储器12中存储的可执行的计算
机程序,例如,所述基于虚拟化技术的处理器调度装置100所包括的软件功能模块及计算机
程序等,以实现本申请实施例提供的基于虚拟化技术的处理器调度方法(具体内容如后文
所述)。
[0064] 可选地,所述存储器12可以是,但不限于,随机存取存储器(Random Access Memory,RAM),只读存储器(Read Only Memory,ROM),可编程只读存储器(Programmable 
Read‑Only Memory,PROM),可擦除只读存储器(Erasable Programmable Read‑Only 
Memory,EPROM),电可擦除只读存储器(Electric Erasable Programmable Read‑Only 
Memory,EEPROM)等。
[0065] 并且,所述处理器14可以是一种通用处理器,包括中央处理器(Central Processing Unit,CPU)、网络处理器(Network Processor,NP)、片上系统(System on 
Chip,SoC)等;还可以是数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列
(FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
[0066] 可以理解,图1所示的结构仅为示意,所述电子设备10还可包括比图1中所示更多或者更少的组件,或者具有与图1所示不同的配置,例如,还可以包括用于与其它网络设备
进行信息交互的通信单元。
[0067] 可以理解的是,在一种可以替代的示例中,所述电子设备10可以是一种具有数据处理能力的服务器。并且,所述电子设备10具有至少一个物理处理器,所述电子设备10上部
署有至少一个虚拟机(Virtual Machine),每一个所述虚拟机上部署有至少一个虚拟处理
器(vCPU)。
[0068] 结合图2,本申请实施例还提供一种可应用于上述电子设备10的基于虚拟化技术的处理器调度方法。其中,所述基于虚拟化技术的处理器调度方法有关的流程所定义的方
法步骤可以由所述电子设备10实现。
[0069] 下面将对图2所示的具体流程,进行详细阐述。
[0070] 步骤S110,获取预先为每一个所述虚拟机配置的优先权参数。
[0071] 在本实施例中,所述电子设备10可以先获取每一个虚拟机的优先权参数。其中,每一个虚拟机的优先权参数可以预先配置生成。
[0072] 步骤S120,基于所述优先权参数分别确定每一个所述虚拟机包括的每一个虚拟处理器的初始资源消耗信用值。
[0073] 在本实施例中,在基于步骤S110获取到所述优先权参数之后,所述电子设备10可以基于所述优先权参数,分别确定每一个所述虚拟机包括的每一个所述虚拟处理器的初始
资源消耗信用值。
[0074] 其中,所述初始资源消耗信用值用于表征所述虚拟处理器对所述至少一个物理处理器的处理器资源的初始占用比例。
[0075] 步骤S130,基于所述初始资源消耗信用值对所述虚拟处理器执行调度操作,以将待运行的至少一个所述虚拟处理器分配给所述至少一个物理处理器运行。
[0076] 在本实施例中,在基于步骤S120确定每一个所述虚拟处理器的初始资源消耗信用值之后,所述电子设备10可以基于所述初始资源消耗信用值对所述虚拟处理器执行调度操
作,如此,可以将待运行的至少一个所述虚拟处理器分配给所述至少一个物理处理器运行,
即在所述物理处理器上运行所述虚拟处理器,使得所述虚拟处理器上的任务可以被执行。
[0077] 基于上述方法,由于在对虚拟处理器执行调度操作时,考虑了基于优先权参数确定的初始资源消耗信用值,因而,对于具有不同初始资源消耗信用值的虚拟处理器可以形
成不同的分配次序,例如,具有高初始资源消耗信用值的分配次序可以在前,以得到及时的
处理,从而改善现有的虚拟化技术中物理处理器的资源分配不合理的问题。
[0078] 第一方面,对于步骤S110需要说明的是,所述优先权参数可以是基于用户根据实际应用场景进行的配置操作生成。
[0079] 可以理解的是,在一种可以替代的示例中,所述优先权参数的取值范围可以为0‑255。其中,对于具有较高优先程度的虚拟机,用户可以配置较高的优先权参数,如大于100,
对于具有较低优先程度的的虚拟机,用户可以配置较低的优先权参数,如小于100。
[0080] 第二方面,对于步骤S120需要说明的是,确定所述初始资源消耗信用值的具体方式不受限制,可以根据实际应用需求进行选择。
[0081] 例如,在一种可以替代的示例中,考虑到所述优先权参数可以是基于虚拟机的优先程度确定,且优先程度较高的虚拟机上部署的虚拟处理器需要执行的任务一般具有较高
的优先级,因而,可以占用较多的处理器资源。基于此,在执行步骤S120时,可以基于各虚拟
机的优先权参数之间的大小关系,确定对应的虚拟处理器的初始资源消耗信用值。例如,优
先权参数越大,对应的初始资源消耗信用值可以越大。
[0082] 可以理解的是,在一种可以替代的示例中,同一个虚拟机上部署的不同虚拟处理器,可以具有相同的初始资源消耗信用值。例如,首先,可以根据各所述虚拟机的优先权参
数之间的大小关系,确定各所述虚拟机的初始资源消耗信用值,然后,再针对每一个所述虚
拟机,将该虚拟机的初始资源消耗信用值平均分配给该虚拟机上的每一个虚拟处理器。
[0083] 可以理解的是,在一种可以替代的示例中,可以先基于所述物理处理器的数量确定总信用值,如具有10个物理处理器,总信用值可以为10000,即每一个物理处理器的信用
值可以为1000。然后,计算各所述虚拟机的优先权参数的和值,然后,基于该和值计算各所
述虚拟机的优先权参数占比,再基于该优先权参数占比和总信用值计算(如相乘)得到各所
述虚拟机对应的初始资源消耗信用值。
[0084] 第三方面,对于步骤S130需要说明的是,执行所述调度操作的具体方式不受限制,可以根据实际应用需求进行选择。
[0085] 例如,在一种可以替代的示例中,为了使得一些具有特定状态的虚拟处理器能够优先分配到物理处理器,以使该虚拟处理器上的任务可以优先被执行,步骤S130可以包括
子步骤1‑子步骤3,具体内容如下所述。
[0086] 子步骤1,基于每一个所述虚拟处理器的状态信息和预先确定的状态判断条件,确定每一个所述虚拟处理器是否属于目标虚拟处理器。
[0087] 在本实施例中,在将所述虚拟处理器分配给所述物理处理器运行之前,可以先基于每一个所述虚拟处理器的状态信息和预先确定的状态判断条件,确定每一个所述虚拟处
理器是否属于目标虚拟处理器。
[0088] 例如,若一个虚拟处理器的状态信息符合所述状态判断条件,可以认为该虚拟处理器属于目标虚拟处理器。若一个虚拟处理器的状态信息不符合所述状态判断条件,可以
认为该虚拟处理器不属于目标虚拟处理器。
[0089] 子步骤2,针对每一个确定的目标虚拟处理器,基于该目标虚拟处理器的初始资源消耗信用值和该目标虚拟处理器所属的虚拟机的优先权参数,确定该目标虚拟处理器的优
先级权值。
[0090] 在本实施例中,在基于子步骤1确定每一个虚拟处理器是否属于目标虚拟处理器之后,若存在目标虚拟处理器,可以针对每一个目标虚拟处理器,基于该目标虚拟处理器的
初始资源消耗信用值和该目标虚拟处理器所属的虚拟机的优先权参数,确定该目标虚拟处
理器的优先权值。如此,可以得到每一个目标虚拟处理器的优先权值。
[0091] 其中,所述优先级权值用于表征所述目标虚拟处理器被分配给所述至少一个物理处理器运行的优先级。
[0092] 子步骤3,基于所述优先级权值将至少一个所述目标虚拟处理器分配给所述至少一个物理处理器运行。
[0093] 在本实施例中,在基于子步骤2确定每一个所述目标虚拟处理器的优先权值之后,可以基于所述优先权值将至少一个所述目标虚拟处理器分配给所述至少一个物理处理器
运行。
[0094] 可以理解的是,在一种可以替代的示例中,为了保证所述目标虚拟处理器上的任务能够被优先执行,以保证任务执行的实时性,提高响应速度,在上述步骤的基础上,对于
所述目标虚拟处理器以外的其它虚拟处理器,可以在不存在目标虚拟处理器时,再基于对
应的初始资源消耗信用值将该其它虚拟处理器分配给所述物理处理器运行。
[0095] 可以理解的是,经过本申请的发明人的长期研究发现,对于一些输入输出任务(IO任务),用户的感知度更为明显,因而,需要具有较高的执行实时性。基于此,在一种可以替
代的示例中,上述的子步骤1可以包括子步骤a‑子步骤d,具体内容如下所述。
[0096] 子步骤a,确定每一个所述虚拟处理器的状态信息。
[0097] 在本实施例中,可以先确定每一个所述虚拟处理器的状态信息。例如,可以结合所述虚拟处理器处理的任务类型、资源消耗信用值以及是否有任务需要执行等因素,以确定
所述虚拟处理器的状态信息。
[0098] 其中,若所述虚拟处理器用于处理输入输出任务(如数据访问、交互等)、资源消耗信用值大于预设的信用阈值(在一种可以替代的示例中,该信用阈值可以为0,即通过与该
信用阈值的大小关系来表征虚拟处理器的资源消耗信用值是否耗尽,是否还能够占用物理
处理器)且未处于空闲状态,则所述虚拟处理器具有第一状态信息。若所述虚拟处理器用于
处理计算任务(如内部逻辑运算等)、资源消耗信用值大于所述信用阈值且未处于空闲状
态,则所述虚拟处理器具有第二状态信息。若所述虚拟处理器的资源消耗信用值小于所述
信用阈值且未处于空闲状态,则所述虚拟处理器具有第三状态信息。若所述虚拟处理器处
于空闲状态(如不需要执行任务等),则所述虚拟处理器具有第四状态信息。
[0099] 可以理解的是,所述资源消耗信用值可以是指所述虚拟处理器当前具有的资源消耗信用值。其中,在初始状态下,由于所述虚拟处理器未曾占用过所述物理处理器,因而,所
述虚拟处理器当前的资源消耗信用值可以是指所述初始资源消耗信用值。
[0100] 子步骤b,分别判断每一个虚拟处理器是否具有所述第一状态信息。
[0101] 在本实施例中,在基于子步骤a确定每一个所述虚拟处理器的状态信息之后,可以分别判断每一个所述虚拟处理器是否具有第一状态信息。
[0102] 其中,若所述虚拟处理器具有所述第一状态信息,可以执行子步骤c。若所述虚拟处理器不具有所述第一状态信息,可以执行子步骤d。
[0103] 子步骤c,确定所述虚拟处理器属于目标虚拟处理器。
[0104] 在本实施例中,在基于子步骤b确定所述虚拟处理器具有所述第一状态信息之后,可以确定所述虚拟处理器属于目标虚拟处理器。如此,可以将用于处理输入输出任务、资源
消耗信用值大于所述信用阈值且未处于空闲状态的虚拟处理器确定为目标虚拟处理器。
[0105] 子步骤d,确定所述虚拟处理器不属于目标虚拟处理器。
[0106] 在本实施例中,在基于子步骤b确定所述虚拟处理器不具有所述第一状态信息之后,可以确定所述虚拟处理器不属于目标虚拟处理器。基于此,可以将具有所述第二状态信
息、所述第三状态信息或所述第四状态信息的虚拟处理器确定为非目标虚拟处理器。
[0107] 可以理解的是,在一种可以替代的示例中,在执行上述的子步骤2时,可以基于以下子步骤以确定所述目标虚拟处理器的优先级权值:
[0108] 首先,可以计算所述初始资源消耗信用值和所述优先权参数的乘积,然后,再将该乘积除以100,可以得到对应的优先权值。
[0109] 也就是说,在所述优先权参数相同的基础上,所述初始资源消耗信用值越大,对应的优先权值也越大。在所述初始资源消耗信用值相同的基础上,所述优先权参数越大,对应
的优先权值也越大。
[0110] 可以理解的是,在一种可以替代的示例中,在执行上述的子步骤3时,在确定每一个所述目标虚拟处理器的优先权值之后,可以基于所述优先权值将所述目标虚拟处理器保
存至预先构建的红黑树中,由于在红黑树中最右节点保存的是优先权值最大的目标虚拟处
理器,因而,在将所述目标虚拟处理器分配给所述物理处理器运行时,可以直接将所述红黑
树中保存于最右节点的目标虚拟处理器分配给所述物理处理器运行。如此,可以提高将所
述目标虚拟处理器分配给所述物理处理器运行的效率,从而提高对应任务执行的效率,以
保证任务执行的实时性。
[0111] 可以理解的是,在一种可以替代的示例中,在将所述目标虚拟处理器分配给所述物理处理器运行之后,将消耗所述目标虚拟处理器的初始资源消耗信用值,且考虑到运行
时长是消耗所述初始资源消耗信用值的重要因素,因此,步骤S130还可以包括子步骤4和子
步骤5,具体内容如下所述。
[0112] 子步骤4,统计运行中的每一个所述目标虚拟处理器的持续运行时长。
[0113] 在本实施例中,在将所述目标虚拟处理器分配给所述物理处理器运行之后,可以统计运行中的每一个所述目标虚拟处理器的持续运行时长。
[0114] 子步骤5,针对运行中的每一个所述目标虚拟处理器,基于该目标虚拟处理器的持续运行时长,对该目标虚拟处理器当前的资源消耗信用值进行更新处理,得到更新后的资
源消耗信用值。
[0115] 在本实施例中,在基于子步骤4统计到每一个所述目标虚拟处理器的持续运行时长之后,针对运行中的每一个所述目标虚拟处理器,可以基于该目标虚拟处理器的持续运
行时长,对该目标虚拟处理器当前的资源消耗信用值(如初始状态下的初始资源消耗信用
值)进行更新处理,得到更新后的资源消耗信用值。
[0116] 其中,所述更新后的资源消耗信用值小于所述当前的资源消耗信用值。
[0117] 可以理解的是,在上述示例中,由于对所述目标虚拟处理器当前的资源消耗信用值进行更新处理的依据是所述目标虚拟处理器的持续运行时长,因而,上述子步骤4和子步
骤5可以每间隔一定时长执行一次,以保证更新处理的有效性。例如,在一种可以替代的示
例中,可以每间隔10ms执行一次子步骤4和子步骤5,如每执行一次子步骤5可以将运行中的
目标虚拟处理器当前的资源消耗信用值减少100。
[0118] 可以理解的是,在一种可以替代的示例中,为了进一步提高物理处理器资源分配的合理性,以保证不同任务执行的时效均衡,步骤130还可以包括子步骤6‑子步骤10,具体
内容如下所述。
[0119] 子步骤6,针对运行中的每一个所述目标虚拟处理器,判断该目标虚拟处理器的更新后的资源消耗信用值是否小于预设的信用阈值。
[0120] 在本实施例中,在将至少一个所述目标虚拟处理器分配给所述至少一个物理处理器运行之后,针对运行中的每一个所述目标虚拟处理器,可以判断该目标虚拟处理器更新
后的资源消耗信用值是否小于预设的信用阈值(该信用阈值如前所述,在一种可以替代的
示例中,可以为0)。
[0121] 其中,若所述更新后的资源消耗信用值小于所述信用阈值,可以针对对应的目标虚拟处理器执行子步骤7。若所述更新后的资源消耗信用值大于或等于所述信用阈值,可以
针对对应的目标虚拟处理器执行子步骤8。
[0122] 子步骤7,针对更新后的资源消耗信用值小于所述信用阈值的每一个目标虚拟处理器,在所述至少一个物理处理器上停止运行该目标虚拟处理器。
[0123] 在本实施例中,在基于子步骤6确定存在更新后的资源消耗信用值小于所述信用阈值的目标虚拟处理器之后,可以在所述至少一个物理处理器上停止运行该目标虚拟处理
器。
[0124] 子步骤8,针对更新后的资源消耗信用值大于或等于所述信用阈值的每一个目标虚拟处理器,判断该目标虚拟处理器在所述至少一个物理处理器上的持续运行时长是否大
于或等于预设时长。
[0125] 在本实施例中,在基于子步骤6确定存在更新后的资源消耗信用值大于或等于所述信用阈值的目标虚拟处理器之后,可以基于该目标虚拟处理器在所述至少一个物理处理
器上的持续运行时长,判断是否在所述至少一个物理处理器上停止运行该目标虚拟处理
器,如判断该目标虚拟处理器在所述至少一个物理处理器上的持续运行时长是否大于或等
于预设时长(在一种可以替代的示例中,该预设时长可以为30ms)。
[0126] 其中,若所述持续运行时长大于或等于所述预设时长,可以针对对应的目标虚拟处理器执行子步骤9。若所述持续运行时长小于所述预设时长,可以针对对应的目标虚拟处
理器执行子步骤10。
[0127] 子步骤9,在所述物理处理器上停止运行对应的目标虚拟处理器。
[0128] 在本实施例中,在基于子步骤8确定存在持续运行时长大于或等于所述预设时长的目标虚拟处理器时,可以在所述至少一个物理处理器上停止运行该目标虚拟处理器。
[0129] 子步骤10,在所述物理处理器上继续运行对应的目标虚拟处理器。
[0130] 在本实施例中,在基于子步骤8确定存在持续运行时长小于所述预设时长的目标虚拟处理器时,可以在所述至少一个物理处理器上继续运行该目标虚拟处理器。
[0131] 也就是说,在上述示例中,若一个目标虚拟处理器的资源消耗信用值较小或运行时长较大,可以在所述物理处理器上停止运行该目标虚拟处理器。若一个目标虚拟处理器
的资源消耗信用值较大且运行时长较小,可以在所述物理处理器上继续运行该目标虚拟处
理器。如此,可以提高物理处理器资源分配的合理性,如使得一些优先程度较低的任务也能
够在一定时长内被处理,避免出现长时间等待的问题。
[0132] 可以理解的是,在一种可以替代的示例中,上述的子步骤9可以包括以下子步骤,以在所述物理处理器上停止运行对应的目标虚拟处理器:
[0133] 首先,基于所述持续运行时长对应的目标虚拟处理器的更新后的资源消耗信用值对该目标虚拟处理器的优先权值进行更新,得到更新后的优先权值;其次,基于所述更新后
的优先权值将对应的目标虚拟处理器插入预先构建的红黑树中进行保存,并从该红黑树中
将待运行的至少一个所述目标虚拟处理器分配给所述至少一个物理处理器运行。
[0134] 其中,所述红黑树用于按照基于所述优先权值确定的先后顺序保存待运行的每一个所述目标虚拟处理器。例如,可以将优先权值最大的目标虚拟处理器保存于所述红黑树
的最右节点。
[0135] 也就是说,对于更新后的资源消耗信用值大于或等于所述信用阈值的每一个目标虚拟处理器,由于其资源消耗信用值还较大,实际上还可以继续占用所述物理处理器,停止
运行该目标虚拟处理器是为了保证其它虚拟处理器也能够被分配给所述物理处理器运行,
因而,可以先基于所述更新后的资源消耗信用值对该目标虚拟处理器的优先权值进行更
新,然后,基于所述更新后的优先权值将该目标虚拟处理器插入预先构建的红黑树中进行
保存,最后,再从该红黑树中将待运行的至少一个所述目标虚拟处理器分配给所述至少一
个物理处理器运行。如此,可以保证在所述物理处理器上运行的目标虚拟处理器当前的资
源消耗信用值在所有的目标虚拟处理器当前的资源消耗信用值中是最大值。
[0136] 其中,基于所述更新后的资源消耗信用值对所述优先权值进行更新的方式可以包括,基于所述更新后的资源消耗信用值和对应的目标虚拟处理器所属的虚拟机的优先权参
数计算得到新的优先权值,计算方式如前所述。
[0137] 可以理解的是,在基于上述的步骤S120确定每一个所述虚拟处理器的初始资源消耗信用值之后,若将所述虚拟处理器分配给所述物理处理器运行,将消耗所述初始资源消
耗信用值,将导致所述虚拟处理器的状态信息发生变化,或者说,也可以基于其它操作也会
导致所述虚拟处理器的状态信息发生变化。基于此,在一种可以替代的示例中,步骤S130还
可以包括子步骤11和子步骤12,具体内容如下所述。
[0138] 子步骤11,判断是否存在具有所述第一状态信息的虚拟处理器或是否存在具有所述第二状态信息的虚拟处理器。
[0139] 在本实施例中,考虑到所述虚拟处理器的状态信息可以发生变化,因而,在执行步骤130时,可以判断是否存在具有所述第一状态信息的虚拟处理器,或者,是否存在具有所
述第二状态信息的虚拟处理器。
[0140] 其中,若不存在具有所述第一状态信息的虚拟处理器,且不存在具有所述第二状态信息的虚拟处理器,可以执行子步骤12。
[0141] 子步骤12,针对每一个所述虚拟处理器执行目标操作。
[0142] 在本实施例中,在基于子步骤11确定不存在具有所述第一状态信息的虚拟处理器,且不存在具有所述第二状态信息的虚拟处理器之后,可以针对每一个所述虚拟处理器
执行目标操作,以进行资源消耗信用值的重新分配。其中,所述目标操作可以包括:
[0143] 首先,针对具有所述第三状态信息的每一个虚拟处理器,基于该虚拟处理器的初始资源消耗信用值和当前具有的资源消耗信用值进行叠加处理,得到该虚拟处理器重新分
配后的资源消耗信用值;
[0144] 其次,针对具有所述第四状态信息的每一个虚拟处理器,将该虚拟处理器的初始资源消耗信用值作为重新分配后的资源消耗信用值。
[0145] 例如,在一种应用示例中,所述信用阈值可以为0,如此,对于具有所述第三状态信息的虚拟处理器,当前具有的资源消耗信用值可以为负值,即提前消耗了之后的资源消耗
信用值,因而,在进行资源消耗信用值的重新分配时,需要将初始资源消耗信用值和当前具
有的资源消耗信用值进行叠加处理。如此,可以进一步提高资源分配的合理性。
[0146] 可以理解的是,在一种可以替代的示例中,对于四种状态信息的虚拟处理器,首先,可以优先将具有所述第一状态信息的虚拟处理器分配给所述物理处理器运行。其次,在
不存在具有所述第一状态信息的虚拟处理器时,可以优先将具有所述第二状态信息的虚拟
处理器分配给所述物理处理器运行。然后,在不存在具有所述第一状态信息和所述第二状
态信息的虚拟处理器时,可以重新分配资源消耗信用值。
[0147] 其中,对于都具有所述第一状态信息的不同虚拟处理器,可以将当前的优先权值最大的虚拟处理器分配给所述物理处理器运行,如将当前处于红黑树的最右节点的虚拟处
理器分配给所述物理处理器运行。对于都具有所述第二状态信息的不同虚拟处理器,可以
将该虚拟处理器保存至预先构建的待运行队列中,然后,在该待运行队列中进行轮询,以将
当前轮询到的虚拟处理器分配给所述物理处理器运行。
[0148] 可以理解的是,在一种可以替代的示例中,在所述物理处理器运行具有所述第一状态信息的虚拟处理器(如所述目标虚拟处理器)的过程中,可能会存在新增具有所述第一
状态信息的虚拟处理器的情形。
[0149] 对此,若新的虚拟处理器的优先权值大于运行中的虚拟处理器的优先权值,可以停止运行该虚拟处理器,并基于该虚拟处理器的持续运行时长更新优先权值(例如,在一种
可以替代的示例中,可以是每运行1ms,对应的资源消耗信用值减少10),然后,基于更新后
的优先权值将该虚拟处理器保存在红黑树中,并且,可以将新的虚拟处理器分配给所述物
理处理器运行。若新的虚拟处理器的优先权值小于或等于运行中的虚拟处理器的优先权
值,可以继续运行该虚拟处理器,并将新的虚拟处理器基于对应的优先权值保存至红黑树
中。
[0150] 在上述示例的基础上,考虑到任务执行的时效,所述电子设备10上可以具有多个物理处理器,以提高更多的物理处理器资源。
[0151] 并且,基于所述多个物理处理器的配置,以及结合前述示例,经过本申请的发明人的长期研究发现,由于所述目标虚拟处理器需要优先被分配给所述物理处理器运行,如此,
为了充分使得所述目标虚拟处理器上的任务能够被及时执行,需要使得所述多个物理处理
器上的目标虚拟处理器的数量相对平衡。基于此,在一种可以替代的示例中,所述基于虚拟
化技术的处理器调度方法还可以包括步骤S140‑步骤S200,具体内容如下所述。
[0152] 步骤S140,判断是否达到预先确定的负载均衡条件。
[0153] 在本实施例中,所述电子设备10可以先基于预先进行的配置操作生成负载均衡条件,然后,再判断是否达到所述负载均衡条件。
[0154] 其中,若判定达到所述负载均衡条件,可以执行步骤S150。
[0155] 步骤S150,针对每一个所述物理处理器,在待运行于该物理处理器的目标虚拟处理器中,确定第一目标虚拟处理器的第一数量和第二目标虚拟处理器的第二数量。
[0156] 在本实施例中,在基于步骤S140判定达到所述负载均衡条件之后,所述电子设备10可以针对每一个所述物理处理器,在待运行于该物理处理器的目标虚拟处理器中,确定
第一目标虚拟处理器的数量,如此,可以得到第一数量,并确定第二目标虚拟处理器的数
量,如此,可以得到第二数量。
[0157] 其中,所述第一目标虚拟处理器的优先权参数大于预设的优先权阈值,所述第二目标虚拟处理器的优先权参数小于或等于所述优先权阈值。如此,可以表征所述第一目标
虚拟处理器属于优先权参数较大的目标虚拟处理器,所述第二目标虚拟处理器属于优先权
参数较小的目标虚拟处理器。
[0158] 可以理解的是,所述优先权阈值可以基于用户根据实际应用场景进行的配置操作生成,例如,在一种可以替代的示例中,可以为100。
[0159] 可以理解的是,在一种可以替代的示例中,待运行于所述物理处理器的目标虚拟处理器可以是指:预先针对每一个物理处理器构建有对应的一个红黑树,保存于一个红黑
树的每一个目标虚拟处理器都属于该红黑树对应的物理处理器待运行的目标虚拟处理器。
[0160] 步骤S160,针对每一个所述物理处理器,基于待运行于该物理处理器的虚拟处理器的数量和对应的所述第一数量得到第一比例值,并基于待运行于该物理处理器的虚拟处
理器的数量和对应的所述第二数量得到第二比例值。
[0161] 在本实施例中,在基于步骤S150得到每一个所述物理处理器对应的所述第一数量和所述第二数量之后,所述电子设备10可以针对每一个所述物理处理器,基于待运行于该
物理处理器的虚拟处理器的数量(即包括所述目标虚拟处理器和非目标虚拟处理器的总数
量)和该物理处理器对应的第一数量,得到该物理处理器对应的第一比例值(如该第一数量
除以待运行于该物理处理器的虚拟处理器的数量),并基于待运行于该物理处理器的虚拟
处理器的数量和该物理处理器对应的所述第二数量,得到该物理处理器对应的第二比例
值。
[0162] 步骤S170,在得到的多个第一比例值中,确定出最大的第一比例值和最小的第一比例值,并基于该最大的第一比例值和该最小的第一比例值,判断是否需要对该最大的第
一比例值对应的物理处理器待运行的第一目标虚拟处理器和该最小的第一比例值对应的
物理处理器待运行的第一目标虚拟处理器执行第一负载均衡操作。
[0163] 在本实施例中,在基于步骤S160得到每一个所述物理处理器对应的所述第一比例值之后,所述电子设备10可以在得到的多个所述第一比例值中确定出最大的第一比例值和
最小的第一比例值,然后,可以基于该最大的第一比例值和该最小的第一比例值,判断是否
需要对该最大的第一比例值对应的物理处理器和该最小的第一比例值对应的物理处理器
执行第一负载均衡操作,即是否需要对该最大的第一比例值对应的物理处理器待运行的第
一目标虚拟处理器和该最小的第一比例值对应的物理处理器待运行的第一目标虚拟处理
器执行第一负载均衡操作。
[0164] 其中,若判定需要执行所述第一负载均衡操作,可以执行步骤S190。
[0165] 步骤S180,在得到的多个第二比例值中,确定出最大的第二比例值和最小的第二比例值,并基于该最大的第二比例值和该最小的第二比例值,判断是否需要对该最大的第
二比例值对应的物理处理器待运行的第二目标虚拟处理器和该最小的第二比例值对应的
物理处理器待运行的第二目标虚拟处理器执行第二负载均衡操作。
[0166] 在本实施例中,在基于步骤S160得到每一个所述物理处理器对应的所述第二比例值之后,所述电子设备10可以在得到的多个所述第二比例值中确定出最大的第二比例值和
最小的第二比例值,然后,可以基于该最大的第二比例值和该最小的第二比例值,判断是否
需要对该最大的第二比例值对应的物理处理器和该最小的第二比例值对应的物理处理器
执行第二负载均衡操作,即是否需要对该最大的第二比例值对应的物理处理器待运行的第
二目标虚拟处理器和该最小的第二比例值对应的物理处理器待运行的第二目标虚拟处理
器执行第二负载均衡操作。
[0167] 其中,若判定需要执行所述第二负载均衡操作,可以执行步骤S200。
[0168] 步骤S190,将所述最大的第一比例值对应的物理处理器待运行的第一目标数量个第一目标虚拟处理器分配给所述最小的第一比例值对应的物理处理器,作为该最小的第一
比例值对应的物理处理器待运行的目标虚拟处理器。
[0169] 在本实施例中,在基于步骤S170判定需要执行所述第一负载均衡操作之后,所述电子设备10可以将所述最大的第一比例值对应的物理处理器待运行的第一目标数量个第
一目标虚拟处理器分配给所述最小的第一比例值对应的物理处理器,并将该第一目标数量
个第一目标虚拟处理器,作为该最小的第一比例值对应的物理处理器待运行的目标虚拟处
理器。
[0170] 其中,所述第一目标数量基于所述最大的第一比例值和所述最小的第一比例值确定,以使得所述最大的第一比例值对应的物理处理器待运行的第一目标虚拟处理器和所述
最小的第一比例值对应的物理处理器待运行的第一目标虚拟处理器之间数量相对平衡。
[0171] 可以理解的是,在一种可以替代的示例中,在将所述最大的第一比例值对应的物理处理器待运行的第一目标数量个第一目标虚拟处理器分配给所述最小的第一比例值对
应的物理处理器之后,为了保证待运行的虚拟处理器整体上也具有较佳的平衡效果,也可
以将所述最小的第一比例值对应的物理处理器待运行的具有所述第二状态信息的第一目
标数量个虚拟处理器,分配给所述最大的第一比例值对应的物理处理器。
[0172] 步骤S200,将所述最大的第二比例值对应的物理处理器待运行的第二目标数量个第二目标虚拟处理器分配给所述最小的第二比例值对应的物理处理器,作为该最小的第二
比例值对应的物理处理器待运行的目标虚拟处理器。
[0173] 在本实施例中,在基于步骤S180判定需要执行所述第二负载均衡操作之后,所述电子设备10可以将所述最大的第二比例值对应的物理处理器待运行的第二目标数量个第
二目标虚拟处理器分配给所述最小的第二比例值对应的物理处理器,并将该第二目标数量
个第二目标虚拟处理器,作为该最小的第二比例值对应的物理处理器待运行的目标虚拟处
理器。
[0174] 其中,所述第二目标数量基于所述最大的第二比例值和所述最小的第二比例值确定,以使得所述最大的第二比例值对应的物理处理器待运行的第二目标虚拟处理器和所述
最小的第二比例值对应的物理处理器待运行的第二目标虚拟处理器之间数量相对平衡。
[0175] 可以理解的是,在一种可以替代的示例中,在将所述最大的第二比例值对应的物理处理器待运行的第二目标数量个第二目标虚拟处理器分配给所述最小的第二比例值对
应的物理处理器之后,为了保证待运行的虚拟处理器整体上也具有较佳的平衡效果,也可
以将所述最小的第二比例值对应的物理处理器待运行的具有所述第二状态信息的第二目
标数量个虚拟处理器,分配给所述最大的第二比例值对应的物理处理器。
[0176] 可以理解的是,在一种可以替代的示例中,所述第一目标数量可以基于以下步骤确定:
[0177] 首先,可以计算所述最大的第一比例值和所述最小的第一比例值之间的差值,然后,再计算该差值与该最小的第一比例值对应的第一数量之间的乘积,最后,将该乘积的二
分之一作为所述第一目标数量。
[0178] 可以理解的是,在一种可以替代的示例中,所述第二目标数量可以基于以下步骤确定:
[0179] 首先,可以计算所述最大的第二比例值和所述最小的第二比例值之间的差值,然后,再计算该差值与该最小的第二比例值对应的第二数量之间的乘积,最后,将该乘积的二
分之一作为所述第二目标数量。
[0180] 可以理解的是,在一种可以替代的示例中,基于所述最大的第一比例值和所述最小的第一比例值判断是否执行所述第一负载均衡操作,可以包括以下步骤:
[0181] 首先,可以计算所述最大的第一比例值和所述最小的第一比例值之间的差值,然后,计算该差值与所述最小的第一比例值之间的商值,再判断该商值是否大于或等于预设
的目标值(例如,在一种可以替代的示例中,该目标值可以为1.5),其中,若该商值大于或等
于该目标值,可以判定执行所述第一负载均衡操作,若该商值小于该目标值,可以判定不执
行所述第一负载均衡操作。
[0182] 可以理解的是,在一种可以替代的示例中,基于所述最大的第二比例值和所述最小的第二比例值判断是否执行所述第二负载均衡操作,可以包括以下步骤:
[0183] 首先,可以计算所述最大的第二比例值和所述最小的第二比例值之间的差值,然后,计算该差值与所述最小的第二比例值之间的商值,再判断该商值是否大于或等于预设
的目标值(例如,在一种可以替代的示例中,该目标值可以为1.5),其中,若该商值大于或等
于该目标值,可以判定执行所述第二负载均衡操作,若该商值小于该目标值,可以判定不执
行所述第二负载均衡操作。
[0184] 在上述示例的基础上,为了在保证所述多个物理处理器之间具有较好的负载平衡的基础上,还可以降低在进行负载平衡的过程中消耗过多的资源,经过本申请的发明人的
长期研究发现,提供了一种兼顾方案。基于此,在一种可以替代的示例中,所述负载均衡条
件可以包括第一负载均衡条件和第二负载均衡条件,所述第一负载均衡条件用于确定是否
执行确定第一目标虚拟处理器的第一数量的步骤,所述第二负载均衡条件用于确定是否执
行确定第二目标虚拟处理器的第二数量的步骤,所述基于虚拟化技术的处理器调度方法还
可以包括步骤S210‑步骤S230,具体内容如下所述。
[0185] 步骤S210,在每一次判定不需要执行所述第一负载均衡操作之后,确定相邻的前N次判断结果是否都为不需要执行所述第一负载均衡操作,并在每一次判定不需要执行所述
第二负载均衡操作之后,确定相邻的前N次判断结果是否都为不需要执行所述第二负载均
衡操作。
[0186] 在本实施例中,所述电子设备10在每一次判定不需要执行所述第一负载均衡操作之后,可以确定相邻的前N次判断结果是否都为不需要执行所述第一负载均衡操作,并在每
一次判定不需要执行所述第二负载均衡操作之后,可以确定相邻的前N次判断结果是否都
为不需要执行所述第二负载均衡操作。
[0187] 其中,若相邻的前N次判断结果都为不需要执行所述第一负载均衡操作,可以执行步骤S220。若相邻的前N次判断结果都为不需要执行所述第二负载均衡操作,可以执行步骤
S230。
[0188] 步骤S220,对所述第一负载均衡条件进行第一更新处理。
[0189] 在本实施例中,在基于步骤S210确定相邻的前N次判断结果都为不需要执行所述第一负载均衡操作之后,所述电子设备10可以对所述第一负载均衡条件进行第一更新处
理。
[0190] 其中,所述第一更新处理包括增大所述第一负载均衡条件中的第一预设时长,所述第一预设时长表征相邻两次执行所述确定第一目标虚拟处理器的第一数量的步骤的间
隔。如此,可以降低执行该步骤的频率,从而减少执行该步骤所消耗的资源。
[0191] 步骤S230,对所述第二负载均衡条件进行第二更新处理。
[0192] 在本实施例中,在基于步骤S210确定相邻的前N次判断结果都为不需要执行所述第二负载均衡操作之后,所述电子设备10可以对所述第二负载均衡条件进行第二更新处
理。
[0193] 其中,所述第二更新处理包括增加所述第二负载均衡条件中的第二预设时长,所述第二预设时长表征相邻两次执行所述确定第二目标虚拟处理器的第二数量的步骤的间
隔。如此,可以降低执行该步骤的频率,从而减少执行该步骤所消耗的资源。
[0194] 结合图3,本申请实施例还提供一种可应用于上述电子设备10的基于虚拟化技术的处理器调度装置100,可以包括参数获取模块110、信用值确定模块120和调度操作执行模
块130。
[0195] 所述参数获取模块110,用于获取预先为每一个所述虚拟机配置的优先权参数。在本实施例中,所述参数获取模块110可用于执行图2所示的步骤S110,关于所述参数获取模
块110的相关内容可以参照前文对步骤S110的描述。
[0196] 所述信用值确定模块120,用于基于所述优先权参数分别确定每一个所述虚拟机包括的每一个虚拟处理器的初始资源消耗信用值,其中,所述初始资源消耗信用值用于表
征所述虚拟处理器对所述至少一个物理处理器的处理器资源的初始占用比例。在本实施例
中,所述信用值确定模块120可用于执行图2所示的步骤S120,关于所述信用值确定模块120
的相关内容可以参照前文对步骤S120的描述。
[0197] 所述调度操作执行模块130,用于基于所述初始资源消耗信用值对所述虚拟处理器执行调度操作,以将待运行的至少一个所述虚拟处理器分配给所述至少一个物理处理器
运行。在本实施例中,所述调度操作执行模块130可用于执行图2所示的步骤S130,关于所述
调度操作执行模块130的相关内容可以参照前文对步骤S130的描述。
[0198] 综上所述,本申请提供的基于虚拟化技术的处理器调度方法和处理器调度装置,通过对每一个虚拟机配置优先权参数,使得可以基于配置的优先权参数确定虚拟机上部署
的虚拟处理器的初始资源消耗信用值,从而可以基于确定初始资源消耗信用值对虚拟处理
器执行调度操作,以将待运行的虚拟处理器分配给物理处理器运行。基于此,由于在对虚拟
处理器执行调度操作时,考虑基于优先权参数确定的初始资源消耗信用值,因而,对于具有
不同初始资源消耗信用值的虚拟处理器可以形成不同的分配次序,例如具有高初始资源消
耗信用值的分配次序可以在前,以得到及时的处理,从而改善现有的虚拟化技术中物理处
理器的资源分配不合理的问题。
[0199] 在本申请实施例所提供的几个实施例中,应该理解到,所揭露的装置和方法,也可以通过其它的方式实现。以上所描述的装置和方法实施例仅仅是示意性的,例如,附图中的
流程图和框图显示了根据本申请的多个实施例的装置、方法和计算机程序产品的可能实现
的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序
段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻
辑功能的可执行指令。也应当注意,在有些作为替换的实现方式中,方框中所标注的功能也
可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执
行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或
流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动
作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
[0200] 另外,在本申请各个实施例中的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。
[0201] 所述功能如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说
对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计
算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个
人计算机,电子设备,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步
骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read‑Only Memory)、随机存
取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包
含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括
没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。
在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素
的过程、方法、物品或者设备中还存在另外的相同要素。
[0202] 以上所述仅为本申请的优选实施例而已,并不用于限制本申请,对于本领域的技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原则之内,所作的任何修
改、等同替换、改进等,均应包含在本申请的保护范围之内。