CN113032098A - 一种虚拟机调度方法、装置、设备及可读存储介质 - Google Patents
一种虚拟机调度方法、装置、设备及可读存储介质 Download PDFInfo
- Publication number
- CN113032098A CN113032098A CN202110319671.4A CN202110319671A CN113032098A CN 113032098 A CN113032098 A CN 113032098A CN 202110319671 A CN202110319671 A CN 202110319671A CN 113032098 A CN113032098 A CN 113032098A
- Authority
- CN
- China
- Prior art keywords
- physical cpu
- virtual machine
- sub
- pcpu
- utilization rate
- 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.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 56
- 238000004590 computer program Methods 0.000 claims description 9
- 238000013467 fragmentation Methods 0.000 abstract description 5
- 238000006062 fragmentation reaction Methods 0.000 abstract description 5
- 238000010586 diagram Methods 0.000 description 7
- 238000005516 engineering process Methods 0.000 description 3
- 239000012634 fragment Substances 0.000 description 3
- 238000004422 calculation algorithm Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 238000004458 analytical method Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 230000015556 catabolic process Effects 0.000 description 1
- 238000006731 degradation reaction Methods 0.000 description 1
- 230000003111 delayed effect Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000002085 persistent effect Effects 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
- 230000001052 transient effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/4881—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
- G06F9/5038—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the execution order of a plurality of tasks, e.g. taking priority or time dependency constraints into consideration
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/4557—Distribution of virtual machine instances; Migration and load balancing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/48—Indexing scheme relating to G06F9/48
- G06F2209/484—Precedence
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/50—Indexing scheme relating to G06F9/50
- G06F2209/5018—Thread allocation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/50—Indexing scheme relating to G06F9/50
- G06F2209/5021—Priority
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Debugging And Monitoring (AREA)
Abstract
本发明公开了一种虚拟机调度方法、装置、设备及可读存储介质,该方法包括:获取各物理cpu的pcpu利用率;根据pcpu利用率,确定物理cpu中的待调整物理cpu;根据待调整物理cpu上的虚拟机的子线程的vcpu利用率,确定子线程中的目标子线程;将目标子线程从源物理cpu调度到目的物理cpu;本发明利用各物理cpu的pcpu利用率和虚拟机的子线程的vcpu利用率,动态控制虚拟机的vcpu分布与调度,能够平衡各物理cpu的pcpu利用率,降低了虚拟机的同步延迟,提高了虚拟机性能;并且本发明不必对虚拟机的全部vcpu进行同步调度,减少了cpu利用的碎片和优先级倒置的情况。
Description
技术领域
本发明涉及虚拟化技术领域,特别涉及一种虚拟机调度方法、装置、设备及可读存储介质。
背景技术
随着现代社会科技的发展,虚拟化技术的应用越来与广泛。在虚拟化场景下,会出现物理环境下不存在的同步延迟问题,其中自旋锁(spinlock)问题尤为突出,自旋锁主要用于线程之间的同步,在物理环境持有自旋锁的内核线程不会被抢占,而在虚拟化环境下,持有自旋锁的虚拟机(VM,Virtual Machine)的子线程(vcpu)会被其他线程抢占,因为,vcpu在物理环境下表现为用户态线程,可以被其他高优先级的线程抢占,只有被抢占的vcpu再次获得物理cpu(pcpu,cpu超线程)运行时才能完成与其他vcpu的同步,这被抢占的时间便会导致同步延迟,同时也会导致其他等待该自旋锁的vcpu被阻塞,进而导致虚拟机性能严重下降;在现有案例中,出现过数据库性能下降30%,以及windows虚拟机蓝屏的问题。
现有技术中,往往采用co-scheduling(协同调度)算法解决虚拟机的同步延迟问题,而co-scheduling算法会同时调度虚拟机的所有vcpu,即虚拟机的所有vcpu要么同时获取到pcpu,要么同时释放掉pcpu;而一旦一个vcpu获取不到pcpu,那么其他已经获取到pcpu的vcpu也会等待,这样便会带来cpu利用的碎片问题,例如虚拟机的vcpu1和vcpu2同时在pcpu1和pcpu2的运行队列中准备运行,但此时只有pcpu1是空闲的,pcpu2是繁忙的,那么vcpu1和vcpu2都不会得到运行,pcpu1此时会一直等到pcpu2也空闲,然后再同时运行vcpu1和vcpu2,pcpu1等待的这段时间就是cpu碎片,它会降低cpu利用率,因为这段本来可以运行其他任务的时间片被vcpu1忙等占用了;并且vcpu的等待时间会导致高优先级任务的运行时间推迟,不能够及时得到调度,导致优先级倒置的问题。
因此,如何能够更好地对虚拟机的vcpu进行调度,降低虚拟机的同步延迟,减少cpu利用碎片和优先级倒置的情况,提高虚拟机性能,是现今急需解决的问题。
发明内容
本发明的目的是提供一种虚拟机调度方法、装置、设备及可读存储介质,以降低虚拟机的同步延迟,减少cpu利用碎片和优先级倒置的情况,提高虚拟机性能。
为解决上述技术问题,本发明提供一种虚拟机调度方法,包括:
获取各物理cpu的pcpu利用率;
根据所述pcpu利用率,确定所述物理cpu中的待调整物理cpu;其中,所述待调整物理cpu包括源物理cpu和目的物理cpu,所述源物理cpu的pcpu利用率大于所述目的物理cpu的pcpu利用率;
根据所述待调整物理cpu上的虚拟机的子线程的vcpu利用率,确定所述子线程中的目标子线程;
将所述目标子线程从所述源物理cpu调度到所述目的物理cpu。
可选的,所述待调整物理cpu的数量为2时,所述根据所述pcpu利用率,确定所述物理cpu中的待调整物理cpu,包括:
将所述pcpu利用率中数值最大的物理cpu确定为所述源物理cpu,并将所述pcpu利用率中数值最小的物理cpu确定为所述目的物理cpu。
可选的,所述根据所述pcpu利用率,确定所述物理cpu中的待调整物理cpu之前,还包括:
判断所述pcpu利用率中是否存在差值大于利用率阈值的两个pcpu利用率;
若是,则执行所述根据所述pcpu利用率,确定所述物理cpu中的待调整物理cpu的步骤。
可选的,该方法还包括:
当前虚拟机启动时,将当前虚拟机的每个子线程分配到各自对应的一个物理cpu;其中,任意两个所述物理cpu对应的当前虚拟机的子线程的数量之差小于或等于1。
可选的,所述获取各物理cpu的pcpu利用率,包括:
从预设用户态数据结构获取所述pcpu利用率;其中,所述预设用户态数据结构用于记录所述pcpu利用率以及各虚拟机的子线程的vcpu利用率和运行位置。
可选的,所述待调整物理cpu的数量为2时,所述根据所述待调整物理cpu上的虚拟机的子线程的vcpu利用率,确定所述子线程中的目标子线程,包括:
根据各虚拟机的子线程的运行位置,确定所述源物理cpu和所述目的物理cpu上的虚拟机的子线程的标识信息;
根据所述标识信息和所述源物理cpu上的虚拟机的子线程的vcpu利用率,确定所述目标子线程;其中,所述目标子线程为任一所述源物理cpu上的虚拟机的子线程,所述目的物理cpu上与所述目标子线程属于同一虚拟机的子线程的数量小于或等于数量阈值,所述数量阈值大于或等于0。
可选的,所述根据所述标识信息和所述源物理cpu上的虚拟机的子线程的vcpu利用率,确定所述目标子线程,包括:
确定所述源物理cpu上的虚拟机的子线程中的可调用子线程;其中,每个所述可调用子线程对应的虚拟机的子线程的数量大于或等于核数阈值,所述目的物理cpu上与每个所述可调用子线程同一虚拟机的子线程的数量小于或等于数量阈值;
根据所述可调用子线程的vcpu利用率,将vcpu利用率最大的可调用子线程确定为所述目标子线程。
本发明还提供了一种虚拟机调度装置,包括:
获取模块,用于获取各物理cpu的pcpu利用率;
物理cpu确定模块,用于根据所述pcpu利用率,确定所述物理cpu中的待调整物理cpu;其中,所述待调整物理cpu包括源物理cpu和目的物理cpu,所述源物理cpu的pcpu利用率大于所述目的物理cpu的pcpu利用率;
子线程确定模块,用于根据所述待调整物理cpu上的虚拟机的子线程的vcpu利用率,确定所述子线程中的目标子线程;
调度模块,用于将所述目标子线程从所述源物理cpu调度到所述目的物理cpu。
本发明还提供了一种虚拟机调度设备,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现如上述任一项所述的虚拟机调度方法的步骤。
此外,本发明还提供了一种可读存储介质,所述可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如上述任一项所述的虚拟机调度方法的步骤。
本发明所提供的一种虚拟机调度方法,包括:获取各物理cpu的pcpu利用率;根据pcpu利用率,确定物理cpu中的待调整物理cpu;其中,待调整物理cpu包括源物理cpu和目的物理cpu,源物理cpu的pcpu利用率大于目的物理cpu的pcpu利用率;根据待调整物理cpu上的虚拟机的子线程的vcpu利用率,确定子线程中的目标子线程;将目标子线程从源物理cpu调度到目的物理cpu;
可见,本发明利用各物理cpu的pcpu利用率和虚拟机的子线程的vcpu利用率,动态控制虚拟机的vcpu分布与调度,将pcpu利用率较大的源物理cpu上的目标子线程调度到pcpu利用率较小的目的物理cpu上,从而平衡各物理cpu的pcpu利用率,降低了虚拟机的同步延迟,提高了虚拟机性能;并且本发明不必对虚拟机的全部vcpu进行同步调度,减少了cpu利用的碎片和优先级倒置的情况。此外,本发明还提供了一种虚拟机调度装置、设备及可读存储介质,同样具有上述有益效果。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本发明实施例所提供的一种虚拟机调度方法的流程图;
图2为本发明实施例所提供的另一种虚拟机调度方法的流程图;
图3为本发明实施例所提供的另一种虚拟机调度方法的流程示意图;
图4为本发明实施例所提供的一种虚拟机调度装置的结构框图;
图5为本发明实施例所提供的一种虚拟机调度设备的结构示意图;
图6为本实施例提供所提供的一种虚拟机调度设备的具体结构示意图;
图7为本实施例提供所提供的一种虚拟机调度设备的应用场景的示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
请参考图1,图1为本发明实施例所提供的一种虚拟机调度方法的流程图。该方法可以包括:
步骤101:获取各物理cpu的pcpu利用率。
其中,本步骤中的物理cpu(pcpu,physical cpu)可以为cpu(central processingunit,中央处理器)超线程,如物理服务器超线程;本步骤中的pcpu利用率可以为物理cpu(pcpu)的cpu利用率,即物理cpu上运行的程序所占用的物理cpu资源的占用率。
具体的,本步骤中处理器可以获取设备(如物理服务器)中各物理cpu的pcpu利用率,从而利用pcpu利用率进行虚拟机调度的控制。对于本步骤中处理器获取各物理cpu的pcpu利用率的具体方式,可以由设计人员根据实用场景和用户需求自行设置,如可以采用与现有技术中物理cpu的cpu利用率计算方法相同或相似的方式实现;为了方便本步骤中的pcpu利用率的获取,本实施例中可以在用户态建立数据结构(即预设用户态数据结构),利用建立的数据结构记录各物理cpu的pcpu利用率,以方便对虚拟机的管理和调度,例如本实施例中可以利用预设用户态数据结构记录各物理cpu的pcpu利用率,以及各虚拟机的子线程的vcpu(virtual cpu,虚拟处理器)利用率和运行位置,即本步骤中处理器可以从预设用户态数据结构获取各物理cpu的pcpu利用率。
步骤102:根据pcpu利用率,确定物理cpu中的待调整物理cpu;其中,待调整物理cpu包括源物理cpu和目的物理cpu,源物理cpu的pcpu利用率大于目的物理cpu的pcpu利用率。
可以理解的是,本步骤的目的可以为处理器利用各物理cpu的pcpu利用率,从全部物理cpu确定出需要进行vcpu调度的物理cpu(即待调整物理cpu);待调整物理cpu可以包括需要调度分走vcpu的物理cpu(即源物理cpu)和需要调度加入vcpu的物理cpu(即目的物理cpu),即从源物理cpu中选择vcpu调度到目的物理cpu上,以均衡源物理cpu和目的物理cpu的pcpu利用率。
具体的,对于本步骤处理器根据pcpu利用率,确定物理cpu中的待调整物理cpu的具体方式,可以由设计人员根据实用场景和用户需求自行设置,如处理器可以直接将pcpu利用率中数值最大的物理cpu确定为源物理cpu,并将pcpu利用率中数值最小的物理cpu确定为目的物理cpu;即待调整物理cpu的数量为2,包括一个源物理cpu和一个目的物理cpu。处理器也可以将pcpu利用率之间差值大于利用率阈值(如30%)的两个物理cpu作为待调整物理cpu中的一个pcpu组,即待调整物理cpu可以包括一个或多个pcpu组,每个pcpu组包括一个源物理cpu(即pcpu利用率大的物理cpu)和一个目的物理cpu(即pcpu利用率小的物理cpu),且任意两个pcpu组中不存在相同的物理cpu;例如,本步骤之前处理器可以先判断pcpu利用率中是否存在差值大于利用率阈值的两个pcpu利用率;若存在,则进入本步骤,根据pcpu利用率,确定物理cpu中的待调整物理cpu,如待调整物理cpu的数量为2时,可以将pcpu利用率中数值最大的物理cpu确定为源物理cpu,并将pcpu利用率中数值最小的物理cpu确定为目的物理cpu,即将各物理cpu中pcpu利用率最大的物理cpu与pcpu利用率最小的物理cpu进行均衡;如待调整物理cpu的数量能够大于2时,可以根据pcpu利用率,确定物理cpu中的pcpu组。本实施例对此不做任何限制。
对应的,对于上述根据pcpu利用率,确定物理cpu中的pcpu组的具体方式,可以由设计人员自行设置,如pcpu利用率中是否存在差值大于利用率阈值的两个pcpu利用率,例如最大pcpu利用率与最小pcpu利用率的差值大于利用率阈值时,处理器可以按照预设顺序(如pcpu利用率由大到小)选取物理cpu,并计算该物理cpu与其他物理cpu的pcpu利用率差值;存在pcpu利用率差值大于利用率阈值时,将大于利用率阈值的目标pcpu利用率差值(如最大的pcpu利用率差值或最小的pcpu利用率差值)对应的该物理cpu和另一物理cpu作为一个pcpu组;然后排除pcpu组中的物理cpu,继续按照预设顺序选取物理cpu,直至剩下的物理cpu不存在pcpu利用率差值大于利用率阈值的情况,即待调整物理cpu包括pcpu组。
步骤103:根据待调整物理cpu上的虚拟机的子线程的vcpu利用率,确定子线程中的目标子线程。
其中,本步骤中的虚拟机(VM,Virtual Machine)可以为运行于主机上的一种特殊的程序,对下层物理机表现为特殊的进程,对上层用户表现为一个虚拟的服务器环境;本步骤中的虚拟机的子线程(vcpu)可以为虚拟机进程的子线程,由于在主机上看到的虚拟机进程表现为主进程,vcpu在主机上可以表现为虚拟机进程所表现的主进程的子线程;本步骤中的vcpu利用率可以为虚拟机的子线程(vcpu)的cpu利用率,即每个vcpu运行所占用物理cpu资源的占用率。
可以理解的是,本步骤的目的可以为处理器根据待调整物理cpu上运行的vcpu的vcpu利用率,确定待调整物理cpu上运行的vcpu中需要进行调度的vcpu(即目标子线程),即需要从源物理cpu上调度到目的物理cpu的vcpu;也就是说,本步骤中的目标子线程可以为待调整物理cpu中的源物理cpu上运行的子线程。
具体的,对于本步骤中处理器根据待调整物理cpu上的虚拟机的子线程的vcpu利用率,确定子线程中的目标子线程的具体方式,可以由设计人员根据实用场景和用户需求自行设置,如待调整物理cpu包括一个或多个pcpu组时,处理器可以从每个pcpu组中的源物理cpu中选择各自对应的目标子线程。例如待调整物理cpu包括一个pcpu组,即待调整物理cpu的数量为2时,处理器可以直接根据源物理cpu上的虚拟机的子线程的vcpu利用率,确定目标子线程,如将源物理cpu上运行的vcpu利用率最大的一个vcpu确定目标子线程;处理器也可以根据源物理cpu上的虚拟机的子线程的vcpu利用率和各虚拟机的子线程的运行位置,确定目标子线程,以使目的物理cpu上不会运行过多的同一虚拟机的子线程,如限定目的物理cpu上与目标子线程属于同一虚拟机的子线程的数量小于或等于数量阈值,数量阈值大于或等于0;例如数量阈值为1时,可以使目的物理cpu上不会运行超过两个属于同一虚拟机两个子线程。
步骤104:将目标子线程从源物理cpu调度到目的物理cpu。
需要说明的是,本步骤的目的可以为处理器通过将目标子线程从源物理cpu调度到目的物理cpu,使源物理cpu和目的物理cpu的pcpu利用率可以均衡,从而降低虚拟机的同步延迟,提高虚拟机性能。
具体的,本步骤中处理器可以将源物理cpu上运行的目标子线程调度到各自对应的目的物理cpu上;如待调整物理cpu的数量为2,即待调整物理cpu包括一个源物理cpu和一个目的物理cpu时,处理器可以直接将源物理cpu上运行的目标子线程调度到目的物理cpu上;待调整物理cpu包括多个pcpu组时,处理器可以将每个pcpu组中源物理cpu上运行的目标子线程调度到该pcpu组中的物理cpu上。
本实施例中,本发明实施例利用各物理cpu的pcpu利用率和虚拟机的子线程的vcpu利用率,动态控制虚拟机的vcpu分布与调度,将pcpu利用率较大的源物理cpu上的目标子线程调度到pcpu利用率较小的目的物理cpu上,从而平衡各物理cpu的pcpu利用率,降低了虚拟机的同步延迟,提高了虚拟机性能;并且本发明不必对虚拟机的全部vcpu进行同步调度,减少了cpu利用的碎片和优先级倒置的情况。
请参考图2,图2为本发明实施例所提供的另一种虚拟机调度方法的流程图。该方法可以包括:
步骤201:从预设用户态数据结构获取各物理cpu的pcpu利用率;其中,预设用户态数据结构用于记录pcpu利用率以及各虚拟机的子线程的vcpu利用率和运行位置。
其中,本步骤中的预设用户态数据结构可以为在用户态预先建立的数据结构,用于记录各物理cpu的pcpu利用率以及各虚拟机的子线程的vcpu利用率和运行位置。
对应的,本实施例还可以包括在预设用户态数据结构记录各物理cpu的pcpu利用率以及各虚拟机的子线程的vcpu利用率和运行位置的步骤;例如在虚拟机的运行过程中,处理器可以统计Linux(一种操作系统)系统上proc(虚拟文件系统)文件中的数据计算各虚拟机的子线程(vcpu)vcpu的cpu利用率(即vcpu利用率),同时计算各个物理cpu(pcpu)的cpu利用率(即pcpu利用率),用预设用户态数据结构记录pcpu利用率、pcpu利用率和各vcpu的运行位置,如图3所示,实现对pcpu利用率、pcpu利用率和vcpu运行位置的监控。
可以理解的是,本实施例是以处理器利用预设用户态数据结构对主机(如服务器)中全部虚拟机对应的物理cpu的pcpu利用率和子线程的vcpu利用率和运行位置的监控为例进行的展示,即本步骤中的物理cpu可以为能够运行有虚拟机的子线程的物理cpu,本步骤中的虚拟机的子线程可以为全部虚拟机的子线程;本实施例中处理器也可以利用预设用户态数据结构对主机中部分虚拟机对应的物理cpu的pcpu利用率和子线程的vcpu利用率和运行位置的监控,如处理器可以利用预设用户态数据结构对主机中子线程数量(即核数)大于或等于核数阈值(如16)的虚拟机对应的物理cpu的pcpu利用率和子线程的vcpu利用率和运行位置进行监控,从而实现对子线程数量大于或等于核数阈值的虚拟机中的vcpu的调度,即预设用户态数据结构中记录的子线程的vcpu利用率和运行位置可以为子线程数量大于或等于核数阈值的虚拟机的子线程的vcpu利用率和运行位置。
进一步的,通过测试发现,虚拟机的同步延迟在大核虚拟机情况下尤为严重,分析其原因是因为大核虚拟机由于配置核数过多,出现多个vcpu运行在同一个pcpu上的概率极大,这种现象可以叫做vcpu堆叠,当该pcpu上的vcpu被其他线程抢占时,同步延迟的概率会大大增加。因此,为了进一步避免vcpu堆叠的情况,本实施例所提供的方法还可以包括:当前虚拟机启动时,将当前虚拟机的每个子线程分配到各自对应的一个物理cpu;其中,任意两个物理cpu对应的当前虚拟机的子线程的数量之差小于或等于1;也就是说,本实施例中可以在通过亲和性设定将启动的虚拟机的子线程(vcpu)均匀地分散在不同的pcpu上,在虚拟机的启动阶段便避免vcpu堆叠的情况发生。
具体的,上述当前虚拟机可以为主机中的任一虚拟机,也可以为主机中的任一子线程数量大于或等于核数阈值的虚拟机。本实施例对此不做任何限制。
步骤202:判断pcpu利用率中是否存在差值大于利用率阈值的两个pcpu利用率;若是,则进入步骤203。
可以理解的是,本步骤中处理器通过各物理cpu的pcpu利用率中是否存在差值大于利用率阈值的两个pcpu利用率,确定当前是否需要进行vcpu的调度;从而在存在差值大于利用率阈值的两个pcpu利用率时,对待调整物理cpu进行vcpu调度,均衡待调整物理cpu的pcpu利用率。
对应的,对于本步骤中不存在差值大于利用率阈值的两个pcpu利用率的情况,可以直接结束本流程或返回步骤201,等待下一次从预设用户态数据结构获取各物理cpu的pcpu利用率。
具体的,对于本步骤中处理器判断pcpu利用率中是否存在差值大于利用率阈值的两个pcpu利用率的具体方式,可以由设计人员自行设置,如处理器可以对物理cpu的pcpu利用率进行大小排序,判断最大的pcpu利用率与最小的pcpu利用率之差是否大于利用率阈值;若是,则确定各物理cpu的pcpu利用率中存在差值大于利用率阈值的两个pcpu利用率,可以进入步骤203。只要本步骤中处理器可以确定各物理cpu的pcpu利用率中是否存在差值大于利用率阈值的两个pcpu利用率,本实施例对此不做任何限制。
步骤203:将pcpu利用率中数值最大的物理cpu确定为源物理cpu,并将pcpu利用率中数值最小的物理cpu确定为目的物理cpu。
其中,本步骤的目的可以为处理器在确定各物理cpu的pcpu利用率中存在差值大于利用率阈值的两个pcpu利用率时,通过将各物理cpu的pcpu利用率中数值最大的物理cpu确定为源物理cpu并将数值最小的物理cpu确定为目的物理cpu,能够将差值最大的两个pcpu利用率对应的两个物理cpu确定为待调整物理cpu。
步骤204:根据各虚拟机的子线程的运行位置,确定源物理cpu和目的物理cpu上的虚拟机的子线程的标识信息。
可以理解的是,本步骤中处理器可以各虚拟机的子线程的运行位置,确定源物理cpu和目的物理cpu上的虚拟机的子线程的标识信息(如vcpu名称),从而确定源物理cpu和目的物理cpu上运行的vcpu的情况。
具体的,本步骤中处理器可以利用预设用户态数据结构记录的各虚拟机的子线程的运行位置,确定运行位置为源物理cpu和目的物理cpu的子线程的标识信息。
步骤205:根据标识信息和源物理cpu上的虚拟机的子线程的vcpu利用率,确定目标子线程;其中,目标子线程为任一源物理cpu上的虚拟机的子线程,目的物理cpu上与目标子线程属于同一虚拟机的子线程的数量小于或等于数量阈值,数量阈值大于或等于0。
可以理解的是,本步骤的目的可以为处理器利用源物理cpu和目的物理cpu上的子线程的标识信息和源物理cpu上的子线程的vcpu利用率,确定源物理cpu上需要调度到目的物理cpu上的一个vcpu(即目标子线程),使得目标子线程调度到目的物理cpu上后,该目标子线程所属于的虚拟机在目的物理cpu上运行的子线程的数量小于或等于均衡阈值,从而避免vcpu堆叠的情况;其中,该均衡阈值可以为上述数量阈值加1。
具体的,对于本步骤中处理器根据标识信息和源物理cpu上的虚拟机的子线程的vcpu利用率,确定目标子线程的具体方式,可以由设计人员根据实用场景和用户需求自行设置,如处理器可以先确定源物理cpu上的虚拟机的子线程中的可调用子线程;再从可调用子线程中选择一个可调用子线程作为目标子线程,以避免vcpu堆叠的情况;其中,目的物理cpu上与每个可调用子线程同一虚拟机的子线程的数量小于或等于数量阈值。
对应的,本实施例并不限定上述从可调用子线程中选择一个可调用子线程作为目标子线程的具体方式,如可以直接将vcpu利用率最大的可调用子线程作为目标子线程;也可以根据源物理cpu和目的物理cpu的pcpu利用率和各可调用子线程的vcpu利用率,选择最能平衡源物理cpu和目的物理cpu的pcpu利用率的一个可调用子线程作为目标子线程,以保证物理cpu和目的物理cpu的pcpu利用率的均衡效果,例如利用预设的各pcpu利用率差值与vcpu利用率范围的对应关系,在源物理cpu和目的物理cpu的pcpu利用率差值对应的vcpu利用率范围内的可调用子线程中选择vcpu利用率最大的可调用子线程作为目标子线程。
具体的,数量阈值为1时,本实施例中可以从源物理cpu中选择一个vcpu(即目标子线程)调度到目的物理cpu上,选择vcpu时优先选择目的物理cpu上没有与该vcpu属于同一个虚拟机的vcpu,然后找出最能平衡两边pcpu利用率的vcpu进行调度;当不存在这样的vcpu时,优先选择最能平衡两边pcpu利用率且目的物理cpu上只有一个与该vcpu属于同一个虚拟机的vcpu进行调度。选择vcpu的整体原则可以为:(1)优先平衡源物理cpu和目的物理cpu的利用率;(2)目的物理cpu上与选择的vcpu属于同一虚拟机的vcpu的数量小于或等于1,即选择的vcpu调度到目的物理cpu上后,目的物理cpu上运行的该vcpu所属于的虚拟机的vcpu的数量不超过2。
需要说明的是,上述可调用子线程所属的虚拟机的子线程的数量可以大于或等于核数阈值,即本实施例中可以仅对源物理cpu上运行的子线程数量大于或等于核数阈值的虚拟机的子线程进行调度。
具体的,本实施例是以目标子线程的数量为1为例进行的展示,即每次调度从源物理cpu选择一个vcpu调度到目的物理cpu;目标子线程的数量也可以大于1,即可以在一次调度时从源物理cpu选择多个vcpu调度到目的物理cpu。本实施例对此不做任何限制。
步骤206:将目标子线程从源物理cpu调度到目的物理cpu。
本实施例中,本发明实施例通过根据源物理cpu和目的物理cpu上的虚拟机的子线程的标识信息和源物理cpu上的虚拟机的子线程的vcpu利用率,确定目标子线程,使得目标子线程调度到目的物理cpu上后,该目标子线程所属于的虚拟机在目的物理cpu上运行的子线程的数量小于或等于均衡阈值,从而阻止vcpu堆叠的情况,降低虚拟机的同步延迟,提高虚拟机性能。
相应于上面的方法实施例,本发明实施例还提供了一种虚拟机调度装置,下文描述的虚拟机调度装置与上文描述的虚拟机调度方法可相互对应参照。
请参考图4,图4为本发明实施例所提供的一种虚拟机调度装置的结构框图。该装置可以包括:
获取模块10,用于获取各物理cpu的pcpu利用率;
物理cpu确定模块20,用于根据pcpu利用率,确定物理cpu中的待调整物理cpu;其中,待调整物理cpu包括源物理cpu和目的物理cpu,源物理cpu的pcpu利用率大于目的物理cpu的pcpu利用率;
子线程确定模块30,用于根据待调整物理cpu上的虚拟机的子线程的vcpu利用率,确定子线程中的目标子线程;
调度模块40,用于将目标子线程从源物理cpu调度到目的物理cpu。
可选的,待调整物理cpu的数量为2时,物理cpu确定模块20可以具体用于将pcpu利用率中数值最大的物理cpu确定为源物理cpu,并将pcpu利用率中数值最小的物理cpu确定为目的物理cpu。
可选的,该装置还可以包括:
判断模块,用于判断pcpu利用率中是否存在差值大于利用率阈值的两个pcpu利用率;若是,则向物理cpu确定模块20发送启动信号。
可选的,该装置还可以包括:
启动调度模块,用于在当前虚拟机启动时,将当前虚拟机的每个子线程分配到各自对应的一个物理cpu;其中,任意两个物理cpu对应的当前虚拟机的子线程的数量之差小于或等于1。
可选的,获取模块10可以具体用于从预设用户态数据结构获取pcpu利用率;其中,预设用户态数据结构用于记录pcpu利用率以及各虚拟机的子线程的vcpu利用率和运行位置。
可选的,待调整物理cpu的数量为2时,子线程确定模块30可以包括:
标识确定子模块,用于根据各虚拟机的子线程的运行位置,确定源物理cpu和目的物理cpu上的虚拟机的子线程的标识信息;
子线程确定子模块,用于根据标识信息和源物理cpu上的虚拟机的子线程的vcpu利用率,确定目标子线程;其中,目标子线程为任一源物理cpu上的虚拟机的子线程,目的物理cpu上与目标子线程属于同一虚拟机的子线程的数量小于或等于数量阈值,数量阈值大于或等于0。
可选的,子线程确定子模块可以包括:
调用确定单元,用于确定源物理cpu上的虚拟机的子线程中的可调用子线程;其中,每个可调用子线程对应的虚拟机的子线程的数量大于或等于核数阈值,目的物理cpu上与每个可调用子线程同一虚拟机的子线程的数量小于或等于数量阈值;
子线程确定确定单元,用于根据可调用子线程的vcpu利用率,将vcpu利用率最大的可调用子线程确定为目标子线程。
本实施例中,本发明实施例利用各物理cpu的pcpu利用率和虚拟机的子线程的vcpu利用率,动态控制虚拟机的vcpu分布与调度,将pcpu利用率较大的源物理cpu上的目标子线程调度到pcpu利用率较小的目的物理cpu上,从而平衡各物理cpu的pcpu利用率,降低了虚拟机的同步延迟,提高了虚拟机性能;并且本发明不必对虚拟机的全部vcpu进行同步调度,减少了cpu利用的碎片和优先级倒置的情况。
相应于上面的方法实施例,本发明实施例还提供了一种虚拟机调度设备,下文描述的一种虚拟机调度设备与上文描述的一种虚拟机调度方法可相互对应参照。
请参考图5,图5为本发明实施例所提供的一种虚拟机调度设备的结构示意图。该虚拟机调度设备可以包括:
存储器D1,用于存储计算机程序;
处理器D2,用于执行计算机程序时实现上述方法实施例所提供的虚拟机调度方法的步骤。
具体的,请参考图6,图6为本实施例提供的一种虚拟机调度设备的具体结构示意图,该虚拟机调度设备可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上处理器(central processing units,CPU)322(例如,一个或一个以上处理器)和存储器332,一个或一个以上存储应用程序342或数据344的存储介质330(例如一个或一个以上海量存储设备)。其中,存储器332和存储介质330可以是短暂存储或持久存储。存储在存储介质330的程序可以包括一个或一个以上模块(图示没标出),每个模块可以包括对数据处理设备中的一系列指令操作。更进一步地,中央处理器322可以设置为与存储介质330通信,在资产统计设备310上执行存储介质330中的一系列指令操作。
虚拟机调度设备310还可以包括一个或一个以上电源326,一个或一个以上有线或无线网络接口350,一个或一个以上输入输出接口358,和/或,一个或一个以上操作系统341。例如,Windows ServerTM,Mac OS XTM,UnixTM,LinuxTM,FreeBSDTM等。
其中,虚拟机调度设备310可以具体为服务器;如图7所示,用户可以操作用户端设备通过网络向服务器(即虚拟机调度设备310)发送虚拟机启动指令,使得服务器可以根据接收的虚拟机启动指令,通过上述实施例所提供的虚拟机调度方法,启动相应的虚拟机以及对启动的虚拟机的子线程进行调度,以平衡各物理cpu的pcpu利用率,降低虚拟机的同步延迟,提高虚拟机性能。
上文所描述的虚拟机调度方法中的步骤可以由虚拟机调度设备的结构实现。
相应于上面的方法实施例,本发明实施例还提供了一种可读存储介质,下文描述的一种可读存储介质与上文描述的一种虚拟机调度方法可相互对应参照。
一种可读存储介质,可读存储介质上存储有计算机程序,计算机程序被处理器执行时实现上述方法实施例的虚拟机调度方法的步骤。
该可读存储介质具体可以为U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可存储程序代码的可读存储介质。
说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置、设备及可读存储介质而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
以上对本发明所提供的一种虚拟机调度方法、装置、设备及可读存储介质进行了详细介绍。本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以对本发明进行若干改进和修饰,这些改进和修饰也落入本发明权利要求的保护范围内。
Claims (10)
1.一种虚拟机调度方法,其特征在于,包括:
获取各物理cpu的pcpu利用率;
根据所述pcpu利用率,确定所述物理cpu中的待调整物理cpu;其中,所述待调整物理cpu包括源物理cpu和目的物理cpu,所述源物理cpu的pcpu利用率大于所述目的物理cpu的pcpu利用率;
根据所述待调整物理cpu上的虚拟机的子线程的vcpu利用率,确定所述子线程中的目标子线程;
将所述目标子线程从所述源物理cpu调度到所述目的物理cpu。
2.根据权利要求1所述的虚拟机调度方法,其特征在于,所述待调整物理cpu的数量为2时,所述根据所述pcpu利用率,确定所述物理cpu中的待调整物理cpu,包括:
将所述pcpu利用率中数值最大的物理cpu确定为所述源物理cpu,并将所述pcpu利用率中数值最小的物理cpu确定为所述目的物理cpu。
3.根据权利要求1所述的虚拟机调度方法,其特征在于,所述根据所述pcpu利用率,确定所述物理cpu中的待调整物理cpu之前,还包括:
判断所述pcpu利用率中是否存在差值大于利用率阈值的两个pcpu利用率;
若是,则执行所述根据所述pcpu利用率,确定所述物理cpu中的待调整物理cpu的步骤。
4.根据权利要求1所述的虚拟机调度方法,其特征在于,还包括:
当前虚拟机启动时,将当前虚拟机的每个子线程分配到各自对应的一个物理cpu;其中,任意两个所述物理cpu对应的当前虚拟机的子线程的数量之差小于或等于1。
5.根据权利要求1所述的虚拟机调度方法,其特征在于,所述获取各物理cpu的pcpu利用率,包括:
从预设用户态数据结构获取所述pcpu利用率;其中,所述预设用户态数据结构用于记录所述pcpu利用率以及各虚拟机的子线程的vcpu利用率和运行位置。
6.根据权利要求1至5任一项所述的虚拟机调度方法,其特征在于,所述待调整物理cpu的数量为2时,所述根据所述待调整物理cpu上的虚拟机的子线程的vcpu利用率,确定所述子线程中的目标子线程,包括:
根据各虚拟机的子线程的运行位置,确定所述源物理cpu和所述目的物理cpu上的虚拟机的子线程的标识信息;
根据所述标识信息和所述源物理cpu上的虚拟机的子线程的vcpu利用率,确定所述目标子线程;其中,所述目标子线程为任一所述源物理cpu上的虚拟机的子线程,所述目的物理cpu上与所述目标子线程属于同一虚拟机的子线程的数量小于或等于数量阈值,所述数量阈值大于或等于0。
7.根据权利要求6所述的虚拟机调度方法,其特征在于,所述根据所述标识信息和所述源物理cpu上的虚拟机的子线程的vcpu利用率,确定所述目标子线程,包括:
确定所述源物理cpu上的虚拟机的子线程中的可调用子线程;其中,每个所述可调用子线程对应的虚拟机的子线程的数量大于或等于核数阈值,所述目的物理cpu上与每个所述可调用子线程同一虚拟机的子线程的数量小于或等于数量阈值;
根据所述可调用子线程的vcpu利用率,将vcpu利用率最大的可调用子线程确定为所述目标子线程。
8.一种虚拟机调度装置,其特征在于,包括:
获取模块,用于获取各物理cpu的pcpu利用率;
物理cpu确定模块,用于根据所述pcpu利用率,确定所述物理cpu中的待调整物理cpu;其中,所述待调整物理cpu包括源物理cpu和目的物理cpu,所述源物理cpu的pcpu利用率大于所述目的物理cpu的pcpu利用率;
子线程确定模块,用于根据所述待调整物理cpu上的虚拟机的子线程的vcpu利用率,确定所述子线程中的目标子线程;
调度模块,用于将所述目标子线程从所述源物理cpu调度到所述目的物理cpu。
9.一种虚拟机调度设备,其特征在于,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现如权利要求1至7任一项所述的虚拟机调度方法的步骤。
10.一种可读存储介质,其特征在于,所述可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至7任一项所述的虚拟机调度方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110319671.4A CN113032098B (zh) | 2021-03-25 | 2021-03-25 | 一种虚拟机调度方法、装置、设备及可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110319671.4A CN113032098B (zh) | 2021-03-25 | 2021-03-25 | 一种虚拟机调度方法、装置、设备及可读存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113032098A true CN113032098A (zh) | 2021-06-25 |
CN113032098B CN113032098B (zh) | 2024-04-09 |
Family
ID=76473764
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110319671.4A Active CN113032098B (zh) | 2021-03-25 | 2021-03-25 | 一种虚拟机调度方法、装置、设备及可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113032098B (zh) |
Citations (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP2323035A1 (en) * | 2009-11-16 | 2011-05-18 | VirtualLogix SA | Scheduling system |
CN103729242A (zh) * | 2013-12-19 | 2014-04-16 | 华为技术有限公司 | 一种自旋锁抢占调度算法选择方法及装置 |
KR101465657B1 (ko) * | 2014-03-10 | 2014-12-10 | 성균관대학교산학협력단 | 가상머신을 위한 협력 스케줄링 방법 |
WO2016138638A1 (zh) * | 2015-03-03 | 2016-09-09 | 华为技术有限公司 | 虚拟机的资源分配方法及装置 |
CN106681839A (zh) * | 2016-12-31 | 2017-05-17 | 云宏信息科技股份有限公司 | 弹性计算动态分配方法 |
CN109491788A (zh) * | 2018-11-01 | 2019-03-19 | 郑州云海信息技术有限公司 | 一种虚拟化平台负载均衡实现方法及装置 |
WO2019196692A1 (zh) * | 2018-04-09 | 2019-10-17 | 阿里巴巴集团控股有限公司 | 虚拟机的调度方法和装置 |
CN110389838A (zh) * | 2019-07-24 | 2019-10-29 | 北京邮电大学 | 一种适用于虚拟资源的实时调度和在线迁移管控方法 |
CN110673928A (zh) * | 2019-09-29 | 2020-01-10 | 天津卓朗科技发展有限公司 | 线程绑定方法、装置、存储介质及服务器 |
CN111324432A (zh) * | 2020-01-21 | 2020-06-23 | 腾讯科技(深圳)有限公司 | 处理器调度方法、装置、服务器及存储介质 |
CN111858031A (zh) * | 2020-06-19 | 2020-10-30 | 浪潮电子信息产业股份有限公司 | 一种集群分布式资源调度方法、装置、设备及存储介质 |
CN112256383A (zh) * | 2019-07-22 | 2021-01-22 | 深信服科技股份有限公司 | 虚拟机的cpu核心数的调整方法、装置、设备及介质 |
-
2021
- 2021-03-25 CN CN202110319671.4A patent/CN113032098B/zh active Active
Patent Citations (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP2323035A1 (en) * | 2009-11-16 | 2011-05-18 | VirtualLogix SA | Scheduling system |
CN103729242A (zh) * | 2013-12-19 | 2014-04-16 | 华为技术有限公司 | 一种自旋锁抢占调度算法选择方法及装置 |
KR101465657B1 (ko) * | 2014-03-10 | 2014-12-10 | 성균관대학교산학협력단 | 가상머신을 위한 협력 스케줄링 방법 |
WO2016138638A1 (zh) * | 2015-03-03 | 2016-09-09 | 华为技术有限公司 | 虚拟机的资源分配方法及装置 |
CN106681839A (zh) * | 2016-12-31 | 2017-05-17 | 云宏信息科技股份有限公司 | 弹性计算动态分配方法 |
WO2019196692A1 (zh) * | 2018-04-09 | 2019-10-17 | 阿里巴巴集团控股有限公司 | 虚拟机的调度方法和装置 |
CN110362377A (zh) * | 2018-04-09 | 2019-10-22 | 阿里巴巴集团控股有限公司 | 虚拟机的调度方法和装置 |
CN109491788A (zh) * | 2018-11-01 | 2019-03-19 | 郑州云海信息技术有限公司 | 一种虚拟化平台负载均衡实现方法及装置 |
CN112256383A (zh) * | 2019-07-22 | 2021-01-22 | 深信服科技股份有限公司 | 虚拟机的cpu核心数的调整方法、装置、设备及介质 |
CN110389838A (zh) * | 2019-07-24 | 2019-10-29 | 北京邮电大学 | 一种适用于虚拟资源的实时调度和在线迁移管控方法 |
CN110673928A (zh) * | 2019-09-29 | 2020-01-10 | 天津卓朗科技发展有限公司 | 线程绑定方法、装置、存储介质及服务器 |
CN111324432A (zh) * | 2020-01-21 | 2020-06-23 | 腾讯科技(深圳)有限公司 | 处理器调度方法、装置、服务器及存储介质 |
CN111858031A (zh) * | 2020-06-19 | 2020-10-30 | 浪潮电子信息产业股份有限公司 | 一种集群分布式资源调度方法、装置、设备及存储介质 |
Non-Patent Citations (2)
Title |
---|
CUONG PHAM等: "A Simulation Framework to Evaluate Virtual CPU Scheduling Algorithms", 《2013 IEEE 33RD INTERNATIONAL CONFERENCE ON DISTRIBUTED COMPUTING SYSTEMS WORKSHOPS》, pages 138 - 143 * |
王萍等: "云计算中基于负载预测的虚拟资源调度策略", 《青岛农业大学学报(自然科学版)》, vol. 37, no. 1, pages 73 - 78 * |
Also Published As
Publication number | Publication date |
---|---|
CN113032098B (zh) | 2024-04-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10891158B2 (en) | Task scheduling method and apparatus | |
US11010199B2 (en) | Efficient critical thread scheduling for non-privileged thread requests | |
US9519499B2 (en) | Method for dispatching central processing unit of hotspot domain virtual machine and virtual machine system | |
CN111367630A (zh) | 一种基于云计算的多用户多优先级的分布式协同处理方法 | |
US10778807B2 (en) | Scheduling cluster resources to a job based on its type, particular scheduling algorithm,and resource availability in a particular resource stability sub-levels | |
US20230305880A1 (en) | Cluster distributed resource scheduling method, apparatus and device, and storage medium | |
CN112162835A (zh) | 一种异构云环境下实时任务的调度优化方法 | |
CN109656714B (zh) | 一种虚拟化显卡的gpu资源调度方法 | |
US11379255B2 (en) | Acceleration capacity adjustment method and apparatus for adjusting acceleration capacity of virtual machine | |
CN114461365A (zh) | 一种进程调度处理方法、装置、设备和存储介质 | |
CN111597044A (zh) | 任务调度方法、装置、存储介质及电子设备 | |
CN113626173B (zh) | 调度方法、装置及存储介质 | |
US20160055037A1 (en) | Analysis controller, analysis control method and computer-readable medium | |
CN112214299A (zh) | 多核处理器及其任务调度方法和装置 | |
CN110018782B (zh) | 一种数据读/写方法及相关装置 | |
CN113032098A (zh) | 一种虚拟机调度方法、装置、设备及可读存储介质 | |
CN116048756A (zh) | 一种队列调度方法、装置及相关设备 | |
US11934890B2 (en) | Opportunistic exclusive affinity for threads in a virtualized computing system | |
CN111427673B (zh) | 一种负载均衡方法、装置及设备 | |
CN114911538A (zh) | 一种运行系统的启动方法及计算设备 | |
CN114661415A (zh) | 调度方法及计算机系统 | |
CN114968500A (zh) | 一种任务调度方法、装置、设备及存储介质 | |
CN115269131A (zh) | 一种任务调度方法及装置 | |
CN113467901A (zh) | 一种任务调度的方法及相关设备 | |
CN113254143A (zh) | 虚拟化网络功能网元编排调度方法、装置和系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |