CN108459906B - 一种vcpu线程的调度方法及装置 - Google Patents

一种vcpu线程的调度方法及装置 Download PDF

Info

Publication number
CN108459906B
CN108459906B CN201710090257.4A CN201710090257A CN108459906B CN 108459906 B CN108459906 B CN 108459906B CN 201710090257 A CN201710090257 A CN 201710090257A CN 108459906 B CN108459906 B CN 108459906B
Authority
CN
China
Prior art keywords
physical cpu
physical
vcpu
performance index
thread
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
Application number
CN201710090257.4A
Other languages
English (en)
Other versions
CN108459906A (zh
Inventor
朱益军
赵生龙
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Huawei Technologies Co Ltd
Original Assignee
Huawei Technologies Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Priority to CN201710090257.4A priority Critical patent/CN108459906B/zh
Priority to PCT/CN2017/105871 priority patent/WO2018149157A1/zh
Priority to EP17896523.2A priority patent/EP3572940A4/en
Publication of CN108459906A publication Critical patent/CN108459906A/zh
Priority to US16/545,093 priority patent/US20190377612A1/en
Application granted granted Critical
Publication of CN108459906B publication Critical patent/CN108459906B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • G06F9/5077Logical partitioning of resources; Management or configuration of virtualized resources
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation 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/5044Allocation 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 hardware capabilities
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/501Performance criteria
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/5018Thread allocation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors

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

本发明的实施例提供一种VCPU线程的调度方法及装置,涉及通信技术领域,可以在异构核系统中为虚拟机创建可正常运行的VCPU线程,提高虚拟机的运行效率。该方法包括:获取待创建的VM中VCPU线程所需的性能指标,该性能指标用于指示该VM所需的的规格特征;根据VCPU线程所需的性能指标创建该VCPU线程;进而,从物理CPU信息中确定满足该VCPU线程的性能指标的目标物理CPU组,该物理CPU信息包括至少一个物理CPU组,每个物理CPU组包括性能指标相同的至少一个物理CPU;在目标物理CPU组中的至少一个物理CPU上运行该VCPU线程。

Description

一种VCPU线程的调度方法及装置
技术领域
本发明实施例涉及通信技术领域,尤其涉及一种VCPU线程的调度方法及装置。
背景技术
如图1所示,为虚拟机(VM,Virtual Machine)的运行架构示意图,包括硬件层11,运行在硬件层11上的宿主机(host)12,以及运行在Host 12上的至少一个虚拟机13。
其中,硬件层11内可以包括多个物理CPU,每个虚拟机13内的VCPU(Virtual CPU,虚拟CPU)实际上是一个VCPU线程,可以由Host 12按照一定的规则在不同的物理CPU上进行切换和调度,而VCPU线程的类型需要与其所在的物理CPU的类型一致,否则,运行该VCPU线程的虚拟机无法正常工作。
在同构核系统中,硬件层11内包括一个或多个相同类型的物理CPU,因此,只要VCPU线程的类型与任意物理CPU的类型相同,便可使得运行该VCPU线程的虚拟机正常工作;而在异构核系统中,硬件层11内包括不同类型的物理CPU,为了使虚拟机正常工作,可以将具有相同指令集(即物理CPU能支持的指令的集合)的物理CPU划分为一组,后续,在创建VCPU线程时,Host 12可以根据该VCPU线程的类型,为其绑定相应的一组物理CPU,后续,该VCPU线程可以被Host 12调度在这组物理CPU内的任意物理CPU上运行。
例如,Host 12为VCPU线程1绑定的物理CPU组为组1,组1中包括物理CPU 1和物理CPU 2,那么,后续Host 12可调度VCPU线程1运行在物理CPU 1或物理CPU 2上。然而,物理CPU 1和物理CPU 2虽然具有相同的指令集,但是,其类型并不一定与VCPU线程1的类型完全相同,此时,会导致VCPU线程1无法在物理CPU 2上正常运行,使虚拟机的运行效率降低。
发明内容
本发明的实施例提供一种VCPU线程的调度方法及装置,可以在异构核系统中为虚拟机创建可正常运行的VCPU线程,提高虚拟机的运行效率。
为达到上述目的,本发明的实施例采用如下技术方案:
第一方面,本发明的实施例提供一种VCPU线程的调度方法,包括:获取待创建的VM中VCPU线程所需的性能指标,该性能指标用于指示该VM所需的的规格特征;根据VCPU线程所需的性能指标创建该VCPU线程;进而,从物理CPU信息中确定满足该VCPU线程的性能指标的目标物理CPU组,该物理CPU信息包括至少一个物理CPU组,每个物理CPU组包括性能指标相同的至少一个物理CPU;在目标物理CPU组中的至少一个物理CPU上运行该VCPU线程。
这样一来,可将上述VCPU线程调度在目标物理CPU组内的不同的物理CPU上,而目标物理CPU组内各个物理CPU的性能指标,与上述VCPU线程的性能指标相同,因此,可以避免由于物理CPU的性能指标无法满足VCPU线程的性能指标而导致VM无法正常运行的问题,从而提高虚拟机的运行效率。
在一种可能的实现方式中,该方法还包括:获取N(N>1)个物理CPU的性能指标(例如,主频大小和缓存容量等规格特征);按照N个物理CPU的性能指标,将该N个物理CPU划分为至少一个物理CPU组,这样,可以将每个物理CPU组与该物理CPU组内物理CPU的性能指标之间的对应关系,作为上述物理CPU信息存储在Host内。
在一种可能的实现方式中,获取待创建的虚拟机中VCPU线程所需的性能指标,包括:创建该VM的Qemu主线程;将运行该Qemu主线程的物理CPU的性能指标,作为该VCPU线程所需的性能指标。
又或者,获取待创建的虚拟机中VCPU线程所需的性能指标,包括:获取预先设置的虚拟机配置信息,该虚拟机配置信息中包括该VCPU所需的性能指标。
在上述可能的实现方式中,可以为VM设置不同性能指标的多个VCPU,也就是说,当物理主机为异构核系统时,可以进一步在该物理主机上部署异构核系统的VM。
在一种可能的实现方式中,该VCPU线程所需的性能指标为该VCPU的型号信息;该物理CPU的性能指标为该物理CPU的型号信息。
第二方面,本发明实施例提供了一种Host,包括:获取单元,用于获取待创建的VM中VCPU线程所需的性能指标,该性能指标用于指示该VM所需的VCPU的规格特征;创建单元,用于根据该VCPU线程所需的性能指标创建该VCPU线程;确定单元,用于从物理CPU信息中确定满足该VCPU线程的性能指标的目标物理CPU组,该物理CPU信息包括至少一个物理CPU组,每个物理CPU组包括性能指标相同的至少一个物理CPU;运行单元,用于在目标物理CPU组中的至少一个物理CPU上运行该VCPU线程。
在一种可能的实现方式中,该Host还包括划分单元;其中,该获取单元,还用于获取N个物理CPU的性能指标,N>1;该划分单元,用于按照该N个物理CPU的性能指标,将性能指标相同的物理CPU划分为一个物理CPU组,得到至少一个物理CPU组;确定单元,具体用于将至少一个物理CPU组中每个物理CPU组与该物理CPU组所指示的性能指标之间的对应关系作为物理CPU信息。
在一种可能的实现方式中,该获取单元,具体用于:创建该VM的虚拟操作系统模拟器Qemu主线程;将运行该Qemu主线程的物理CPU的性能指标,作为该VCPU线程所需的性能指标。
在一种可能的实现方式中,该获取单元,具体用于:获取预先设置的虚拟机配置信息,该虚拟机配置信息中包括该VCPU所需的性能指标。
第三方面,本发明实施例提供了一种物理主机,包括:硬件层、运行在该硬件层之上的宿主机Host、以及运行在该Host之上的至少一个虚拟机VM,该硬件层包括N个物理CPU,N>1;其中,该Host用于:获取待创建的VM中VCPU线程所需的性能指标,该性能指标用于指示该VM所需的VCPU的规格特征;根据该VCPU线程所需的性能指标创建该VCPU线程;从物理CPU信息中确定满足该VCPU线程的性能指标的目标物理CPU组,该物理CPU信息包括至少一个物理CPU组,每个物理CPU组包括性能指标相同的至少一个物理CPU;在目标物理CPU组中的至少一个物理CPU上运行该VCPU线程。
在一种可能的实现方式中,该Host还用于:获取该N个物理CPU的性能指标;按照该N个物理CPU的性能指标,将性能指标相同的物理CPU划分为一个物理CPU组,得到至少一个物理CPU组;将至少一个物理CPU组中每个物理CPU组与该物理CPU组所指示的性能指标之间的对应关系作为物理CPU信息。
在一种可能的实现方式中,该Host具体用于:创建该VM的Qemu主线程;将运行该Qemu主线程的物理CPU的性能指标,作为该VCPU线程所需的性能指标。
在一种可能的实现方式中,该Host具体用于:获取预先设置的虚拟机配置信息,该虚拟机配置信息中包括该VCPU所需的性能指标。
第四方面,本发明实施例提供了一种计算机存储介质,用于储存为上述物理主机所用的计算机软件指令,其包含用于执行上述方面为物理主机所设计的程序
第五方面,本发明实施例提供了一种计算机程序,该计算机程序包括指令,当该计算机程序被计算机执行时,使得计算机可以执行上述第一方面中任意一项的VCPU线程的调度方法。
本发明中,上述host、物理主机的名字对设备本身不构成限定,在实际实现中,这些设备可以以其他名称出现。只要各个设备的功能和本发明类似,即属于本发明权利要求及其等同技术的范围之内。
另外,第二方面至第五方面中任一种设计方式所带来的技术效果可参见第一方面中不同设计方式所带来的技术效果,此处不再赘述。
本发明的这些方面或其他方面在以下实施例的描述中会更加简明易懂。
附图说明
图1为现有技术中虚拟机的运行架构示意图;
图2为本发明实施例提供的一种VCPU线程的调度方法的流程示意图;
图3为本发明实施例提供的一种VCPU线程的调度方法的原理示意图;
图4为本发明实施例提供的一种宿主机的结构示意图;
图5为本发明实施例提供的一种物理主机的结构示意图一;
图6为本发明实施例提供的一种物理主机的结构示意图二。
具体实施方式
以下,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括一个或者更多个该特征。在本发明的描述中,除非另有说明,“多个”的含义是两个或两个以上。
为了方便理解本发明实施例,首先在此介绍本发明实施例描述中会引入的几个术语;
虚拟机(VM):通过虚拟机软件可以在一台物理主机上模拟出一台或者多台虚拟的计算机,而这些虚拟机就像真正的计算机那样工作,虚拟机上可以安装操作系统和应用程序,虚拟机还可访问网络资源。对于在虚拟机中运行的应用程序而言,虚拟机就像是在真正的计算机中工作。
硬件层:虚拟化环境运行的硬件平台。其中,硬件层可包括多种硬件,例如,某物理主机的硬件层可包括N(N>1)个物理CPU,还可以包括内存、网卡、存储器、高速/低速输入/输出(I/O,Input/Output)设备,及具有特定处理功能的其它设备。
宿主机(Host):作为管理层,用以完成硬件资源的管理、分配;为虚拟机呈现虚拟硬件平台;实现虚拟机的调度和隔离。例如,Host内可设置虚拟机监控器(VMM)。其中,虚拟硬件平台对其上运行的各个虚拟机提供各种硬件资源,如提供虚拟处理器(VCPU)、虚拟内存、虚拟磁盘、虚拟网卡等等。
其中,VM内可运行一个或多个VCPU,每一个VCPU实际为一个VCPU线程,VM通过调用VCPU线程实现VCPU的功能,并且,VCPU线程可由Host按照一定的规则将上述VCPU线程调度到硬件层内的任意物理CPU上运行。
本发明实施例提供一种VCPU线程的调度方法,其中,在部署VM之前,Host可以按照硬件层中N个物理CPU的性能指标(例如,主频大小和缓存容量等规格特征),将这N个物理CPU划分为至少一个物理CPU组,每个物理CPU组内的物理CPU的性能指标相同。
那么,Host可以将每个物理CPU组与该物理CPU组内各个物理CPU的性能指标之间的对应关系,作为物理CPU信息存储在Host内。
后续,在部署VM时,Host可以先获取该VM中VCPU线程所需的性能指标,该性能指标用于指示VM所需的VCPU的规格特征,例如,VCPU的主频大小和缓存容量等规格特征;进而,创建满足上述性能指标的VCPU线程;然后,Host可以从上述物理CPU信息中,确定满足上述VCPU线程的性能指标的目标物理CPU组,并将上述VCPU线程绑定至目标物理CPU组。
这样一来,Host可将上述VCPU线程调度在目标物理CPU组内的不同的物理CPU上,而目标物理CPU组内各个物理CPU的性能指标,与上述VCPU线程的性能指标相同,因此,可以避免由于物理CPU的性能指标无法满足VCPU线程的性能指标而导致VM无法正常运行的问题,从而提高虚拟机的运行效率。
示例性的,对于不同型号的物理CPU或VCPU,其对应的性能指标一般是不同的,例如,型号A的物理CPU的主频大小为1.2GHz,寄存器个数为3个,型号B的物理CPU的主频大小为2.3GHz,寄存器个数为2个。因此,上述物理CPU的性能指标具体可以为该物理CPU的型号信息,上述VCPU线程的性能指标具体可以为该VCPU的型号信息。
可以理解的是,本发明实施例可以应用于xen、KVM(Kernel-based VirtualMachine,基于内核的虚拟机)等虚拟机平台中,本发明实施例对此不进行限制。
以下,将结合具体实施例详细阐述本发明实施例提供的一种VCPU线程的调度方法,该方法可以由运行在物理主机上的Host来执行,如图2所示,该方法包括:
201、Host获取硬件层中N个物理CPU的型号信息,N>1。
具体的,在物理层上创建Host之后,可在Host内加载VMM,进而,由VMM获取硬件层中N个物理CPU的型号信息。
例如,如图3所示,硬件层中包含8个物理CPU,那么,VMM可以检测出这8个物理CPU中每个物理CPU的型号信息。其中,物理CPU 1至物理CPU 4的型号信息为Cortex-A53类型,物理CPU 5至物理CPU 8的型号信息为Cortex-A57类型。
202、Host按照N个物理CPU的型号信息,将这N个物理CPU划分为至少一个物理CPU组。
203、Host将上述至少一个物理CPU组中每个物理CPU组与该物理CPU组所指示的型号信息之间的对应关系作为物理CPU信息。
具体的,在步骤202中,可以将型号信息相同的物理CPU作为一个物理CPU组。
仍以图3所示的8个物理CPU为例,可以将型号信息相同的物理CPU 1至物理CPU 4划分为物理CPU组1,将型号信息相同的物理CPU 5至物理CPU 8划分为物理CPU组2。
此时,物理CPU组1与Cortex-A53类型对应,物理CPU组2与Cortex-A57类型对应。
进而,在步骤203中,如表1所示,Host将物理CPU组1与Cortex-A53类型之间的对应关系,以及物理CPU组2与Cortex-A57类型之间的对应关系作为物理CPU信息。后续,Host可以根据该物理CPU信息,确定运行VCPU线程的物理CPU组。
表1
物理CPU组1(包括物理CPU 1至物理CPU 4) Cortex-A53类型
物理CPU组2(包括物理CPU 5至物理CPU 8) Cortex-A57类型
204、Host获取待创建的VM内VCPU的型号信息。
在一种可能的实现方式中,Host可以为用户提供不同VCPU型号的VM的功能接口,这样,用户可以自行设置待创建的VM中VCPU的型号等虚拟机配置信息。
例如,用户设置的虚拟机配置信息中,将VCPU的个数设置为2个,将VCPU的型号设置为Cortex-A57和Cortex-A53。也就是说,待创建的VM中需要运行两个VCPU,如图3所示,一个是型号为Cortex-A57的VCPU 1,另一个是型号为Cortex-A53的VCPU 2。
可以看出,在这种实现方式中,可以为VM设置不同型号的VCPU,也就是说,当物理主机为异构核系统时,可以进一步在该物理主机上部署异构核系统的VM。
在另一种可能的实现方式中,当Host获取到一个VM的部署请求时,Host首先创建该VM的Qemu(虚拟操作系统模拟器)主线程(main_loop),进而,创建出的Qemu主线程获取其所在的物理CPU的型号信息,例如,运行上述Qemu主线程的物理CPU的型号信息为Cortex-A57。那么,Qemu主线程可以将自身的物理CPU的型号信息作为上述VCPU的型号信息,即VCPU的型号信息为Cortex-A57。
205、Host根据VCPU的型号信息创建VCPU线程。
具体的,可以由Host上运行的Qemu主线程根据VCPU的型号信息,创建同型号的VCPU线程。
例如,VCPU1的型号信息为Cortex-A57,VCPU2的型号信息为Cortex-A53,那么,Qemu主线程可以创建两个VCPU线程,一个是与Cortex-A57型号对应的VCPU1的VCPU线程1,另一个是与Cortex-A53型号对应的VCPU2的VCPU线程2。
206、Host从上述物理CPU信息中确定满足上述VCPU的型号信息的目标物理CPU组。
具体的,Host可以将上述物理CPU信息中,型号信息与上述VCPU的型号信息相同的物理CPU组作为目标物理CPU组。
仍以图3所示的8个物理CPU为例,物理CPU组1的型号信息为Cortex-A53,物理CPU组2的型号信息为Cortex-A57。而步骤203中VCPU1的型号信息为Cortex-A57,VCPU2的型号信息为Cortex-A53。那么,可确定物理CPU组1为VCPU2的目标物理CPU组,物理CPU组2为VCPU1的目标物理CPU组。
需要说明的是,本发明实施例不限定步骤205与步骤206之间的时序关系。
207、Host将上述VCPU线程运行在目标物理CPU组中的至少一个物理CPU上。
示例性的,在步骤204中创建了两个VCPU线程,一个是与Cortex-A57型号对应的VCPU1的VCPU线程1,另一个是与Cortex-A53型号对应的VCPU2的VCPU线程2。而在步骤205中确定了物理CPU组1为VCPU2的目标物理CPU组,物理CPU组2为VCPU1的目标物理CPU组。
那么,Host可将VCPU线程1绑定至物理CPU组2,将VCPU线程2绑定至物理CPU组1。
后续,VCPU1的VCPU线程1可以在物理CPU组2中的物理CPU5-物理CPU8中的至少一个物理CPU上运行,而VCPU 2的VCPU线程2可以在物理CPU组1中的物理CPU1-物理CPU4中的至少一个物理CPU上运行。
这样,在虚拟机运行过程中,Host可以根据上述绑定关系,将VCPU线程1调度在物理CPU组2中的任意物理CPU上运行,将VCPU线程2调度在物理CPU组1中的任意物理CPU上运行。由于物理CPU组2中的任意物理CPU的型号与VCPU 1的型号相同,即物理CPU组2中的任意物理CPU的性能指标与VCPU 1的性能指标相同,物理CPU组1中的任意物理CPU的性能指标与VCPU 2的性能指标相同,因此,不会出现物理CPU的性能指标无法满足VCPU的情况,从而提高虚拟机的运行效率,同时实现了异构核系统的虚拟机部署和运行。
上述主要从各个网元之间交互的角度对本发明实施例提供的方案进行了介绍。可以理解的是,上述物理主机、Host等为了实现上述功能,其包含了执行各个功能相应的硬件结构和/或软件模块。本领域技术人员应该很容易意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,本发明能够以硬件或硬件和计算机软件的结合形式来实现。某个功能究竟以硬件还是计算机软件驱动硬件的方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
本发明实施例可以根据上述方法示例对上述物理主机、Host等进行功能模块的划分,例如,可以对应各个功能划分各个功能模块,也可以将两个或两个以上的功能集成在一个处理模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。需要说明的是,本发明实施例中对模块的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。
在采用对应各个功能划分各个功能模块的情况下,图4示出了上述实施例中所涉及的Host的一种可能的结构示意图,该Host包括:获取单元41,创建单元42,确定单元43,运行单元44和划分单元45。
获取单元41用于支持Host执行图2中的过程201和204;创建单元42用于支持Host执行图2中的过程205;确定单元43用于支持Host执行图2中的过程203和206;运行单元44用于支持Host执行图2中的过程207;划分单元45用于支持Host执行图2中的过程202。其中,上述方法实施例涉及的各步骤的所有相关内容均可以援引到对应功能模块的功能描述,在此不再赘述。
进一步地,本发明实施例提供一种物理主机,参见图5,该物理主机包含硬件层、运行在所述硬件层之上的Host、以及运行在所述Host之上的至少一个虚拟机。
其中,所述硬件层包括N个物理CPU,可选的,硬件层还可以包括内存和通信接口等设备;
所述Host可以包括该物理主机上的VMM。所述Host可用于执行图2中的过程201-207。其中,上述方法实施例涉及的各步骤的所有相关内容均可以援引到对应功能模块的功能描述,在此不再赘述。
在采用集成的单元的情况下,图6示出了上述实施例中所涉及的物理主机的一种可能的结构示意图。
其中,该物理主机包括N个物理CPU 61,可选的,该物理主机还可以包括存储器62、通信接口63,以及用于进行该物理主机内部各设备之间的连接的至少一个通信总线64,用于实现这些装置之间的连接和相互通信。
其中,通信总线64可以是工业标准体系结构(Industry Standard Architecture,简称为ISA)总线、外部设备互连(Peripheral Component,简称为PCI)总线或扩展工业标准体系结构(Extended Industry Standard Architecture,简称为EISA)总线等。该总线64可以分为地址总线、数据总线、控制总线等。为便于表示,图6中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
物理CPU 61通过读取存储器62存储的指令,可用于执行上述步骤201-206中相关的VCPU线程的调度方法。
进一步地,本发明实施例还提供一种计算机程序,该计算机程序包括指令,当该计算机程序被计算机执行时,可以使得计算机可以执行上述步骤201-207中相关的VCPU线程的调度方法。
进一步地,本发明实施例还提供一种计算机存储介质,用于储存为上述Host所用的计算机软件指令,其包含用于执行为上述Host所设计的任意程序。
结合本发明公开内容所描述的方法或者算法的步骤可以硬件的方式来实现,也可以是由处理器执行软件指令的方式来实现。软件指令可以由相应的软件模块组成,软件模块可以被存放于随机存取存储器(Random Access Memory,RAM)、闪存、只读存储器(ReadOnly Memory,ROM)、可擦除可编程只读存储器(Erasable Programmable ROM,EPROM)、电可擦可编程只读存储器(Electrically EPROM,EEPROM)、寄存器、硬盘、移动硬盘、只读光盘(CD-ROM)或者本领域熟知的任何其它形式的存储介质中。一种示例性的存储介质耦合至处理器,从而使处理器能够从该存储介质读取信息,且可向该存储介质写入信息。当然,存储介质也可以是处理器的组成部分。处理器和存储介质可以位于ASIC中。
通过以上的实施方式的描述,所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:快闪存储器、移动硬盘、只读存储器、随机存取存储器、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何在本申请揭露的技术范围内的变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。

Claims (16)

1.一种VCPU线程的调度方法,其特征在于,包括:
获取待创建的虚拟机VM中虚拟中央处理器VCPU线程所需的性能指标,所述性能指标用于指示所述VM所需的VCPU的规格特征;
根据所述VCPU线程所需的性能指标创建所述VCPU线程;
从物理CPU信息中确定满足所述VCPU线程的性能指标的目标物理CPU组,所述物理CPU信息包括至少一个物理CPU组,每个物理CPU组包括性能指标相同的至少一个物理CPU;
在所述目标物理CPU组中的至少一个物理CPU上运行所述VCPU线程。
2.根据权利要求1所述的方法,其特征在于,在从物理CPU信息中确定满足所述VCPU线程的性能指标的目标物理CPU组之前,还包括:
获取N个物理CPU的性能指标,N>1;
按照所述N个物理CPU的性能指标,将性能指标相同的物理CPU划分为一个物理CPU组,得到至少一个物理CPU组;
将所述至少一个物理CPU组中每个物理CPU组与该物理CPU组所指示的性能指标之间的对应关系作为所述物理CPU信息。
3.根据权利要求1或2所述的方法,其特征在于,获取待创建的虚拟机中VCPU线程所需的性能指标,包括:
创建所述VM的虚拟操作系统模拟器Qemu主线程;
将运行所述Qemu主线程的物理CPU的性能指标,作为所述VCPU线程所需的性能指标。
4.根据权利要求1或2所述的方法,其特征在于,获取待创建的虚拟机中VCPU线程所需的性能指标,包括:
获取预先设置的虚拟机配置信息,所述虚拟机配置信息中包括所述VCPU所需的性能指标。
5.根据权利要求1-2中任一项所述的方法,其特征在于,所述VCPU线程所需的性能指标为所述VCPU的型号信息;所述物理CPU的性能指标为所述物理CPU的型号信息。
6.根据权利要求3所述的方法,其特征在于,所述VCPU线程所需的性能指标为所述VCPU的型号信息;所述物理CPU的性能指标为所述物理CPU的型号信息。
7.根据权利要求4所述的方法,其特征在于,所述VCPU线程所需的性能指标为所述VCPU的型号信息;所述物理CPU的性能指标为所述物理CPU的型号信息。
8.一种宿主机Host,其特征在于,包括:
获取单元,用于获取待创建的虚拟机VM中虚拟中央处理器VCPU线程所需的性能指标,所述性能指标用于指示所述VCPU线程的规格特征;
创建单元,用于根据所述VCPU线程所需的性能指标创建所述VCPU线程;
确定单元,用于从物理CPU信息中确定满足所述VCPU线程的性能指标的目标物理CPU组,所述物理CPU信息包括至少一个物理CPU组,每个物理CPU组包括性能指标相同的至少一个物理CPU;
运行单元,用于在所述目标物理CPU组中的至少一个物理CPU上运行所述VCPU线程。
9.根据权利要求8所述的Host,其特征在于,所述Host还包括划分单元;其中,
所述获取单元,还用于获取N个物理CPU的性能指标,N>1;
所述划分单元,用于按照所述N个物理CPU的性能指标,将性能指标相同的物理CPU划分为一个物理CPU组,得到至少一个物理CPU组;
所述确定单元,具体用于将所述至少一个物理CPU组中每个物理CPU组与该物理CPU组所指示的性能指标之间的对应关系作为所述物理CPU信息。
10.根据权利要求8或9所述的Host,其特征在于,
所述获取单元,具体用于:创建所述VM的虚拟操作系统模拟器Qemu主线程;将运行所述Qemu主线程的物理CPU的性能指标,作为所述VCPU线程所需的性能指标。
11.根据权利要求8或9所述的Host,其特征在于,
所述获取单元,具体用于:获取预先设置的虚拟机配置信息,所述虚拟机配置信息中包括所述VCPU所需的性能指标。
12.一种物理主机,其特征在于,包括:硬件层、运行在所述硬件层之上的宿主机Host、以及运行在所述Host之上的至少一个虚拟机VM,所述硬件层包括N个物理CPU,N>1;其中,
所述Host用于:获取待创建的VM中VCPU线程所需的性能指标,所述性能指标用于指示所述VCPU线程的规格特征;根据所述VCPU线程所需的性能指标创建所述VCPU线程;从物理CPU信息中确定满足所述VCPU线程的性能指标的目标物理CPU组,所述物理CPU信息包括至少一个物理CPU组,每个物理CPU组包括性能指标相同的至少一个物理CPU;在所述目标物理CPU组中的至少一个物理CPU上运行所述VCPU线程。
13.根据权利要求12所述的物理主机,其特征在于,所述Host还用于:
获取所述N个物理CPU的性能指标;按照所述N个物理CPU的性能指标,将性能指标相同的物理CPU划分为一个物理CPU组,得到至少一个物理CPU组;将所述至少一个物理CPU组中每个物理CPU组与该物理CPU组所指示的性能指标之间的对应关系作为所述物理CPU信息。
14.根据权利要求12或13所述的物理主机,其特征在于,所述Host具体用于:
创建所述VM的虚拟操作系统模拟器Qemu主线程;将运行所述Qemu主线程的物理CPU的性能指标,作为所述VCPU线程所需的性能指标。
15.根据权利要求12或13所述的物理主机,其特征在于,所述Host具体用于:
获取预先设置的虚拟机配置信息,所述虚拟机配置信息中包括所述VCPU所需的性能指标。
16.一种计算机程序产品,其特征在于,所述计算机程序产品包括计算机指令,所述计算机指令被处理器执行以实现如权利要求1-7任一项所述的方法。
CN201710090257.4A 2017-02-20 2017-02-20 一种vcpu线程的调度方法及装置 Active CN108459906B (zh)

Priority Applications (4)

Application Number Priority Date Filing Date Title
CN201710090257.4A CN108459906B (zh) 2017-02-20 2017-02-20 一种vcpu线程的调度方法及装置
PCT/CN2017/105871 WO2018149157A1 (zh) 2017-02-20 2017-10-12 一种vcpu线程的调度方法及装置
EP17896523.2A EP3572940A4 (en) 2017-02-20 2017-10-12 METHOD AND DEVICE FOR PLANNING VCPU WIRE
US16/545,093 US20190377612A1 (en) 2017-02-20 2019-08-20 VCPU Thread Scheduling Method and Apparatus

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710090257.4A CN108459906B (zh) 2017-02-20 2017-02-20 一种vcpu线程的调度方法及装置

Publications (2)

Publication Number Publication Date
CN108459906A CN108459906A (zh) 2018-08-28
CN108459906B true CN108459906B (zh) 2021-06-29

Family

ID=63170090

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710090257.4A Active CN108459906B (zh) 2017-02-20 2017-02-20 一种vcpu线程的调度方法及装置

Country Status (4)

Country Link
US (1) US20190377612A1 (zh)
EP (1) EP3572940A4 (zh)
CN (1) CN108459906B (zh)
WO (1) WO2018149157A1 (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110673928B (zh) * 2019-09-29 2021-12-14 天津卓朗科技发展有限公司 线程绑定方法、装置、存储介质及服务器
CN112579257B (zh) * 2020-12-14 2024-02-23 深信服科技股份有限公司 一种虚拟中央处理器核心的调度方法、装置及相关设备
CN113467884A (zh) * 2021-05-25 2021-10-01 阿里巴巴新加坡控股有限公司 资源配置方法和装置、电子设备及计算机可读存储介质
CN113687909B (zh) * 2021-07-28 2024-01-30 华东计算技术研究所(中国电子科技集团公司第三十二研究所) 基于微内核的分时vcpu多核调度方法及系统

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104615549A (zh) * 2015-01-19 2015-05-13 杭州华三通信技术有限公司 一种虚拟系统中域管理方法和装置
CN105242954A (zh) * 2014-06-12 2016-01-13 华为技术有限公司 一种虚拟cpu与物理cpu之间的映射方法及电子设备

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN100511151C (zh) * 2007-12-05 2009-07-08 华为技术有限公司 多路多核服务器及其cpu的虚拟化处理方法
CN101727351B (zh) * 2009-12-14 2012-09-05 北京航空航天大学 面向多核平台的虚拟机监控器非对称调度器及其调度方法
WO2012103728A1 (zh) * 2011-06-30 2012-08-09 华为技术有限公司 热点域虚拟机cpu调度方法及虚拟机系统
CN103645954B (zh) * 2013-11-21 2018-12-14 华为技术有限公司 一种基于异构多核体系的cpu调度方法、装置和系统
CN103685562A (zh) * 2013-12-31 2014-03-26 湖南师范大学 一种云计算系统及其资源和能效管理方法
US9400672B2 (en) * 2014-06-06 2016-07-26 International Business Machines Corporation Placement of virtual CPUS using a hardware multithreading parameter
EP3253027B1 (en) * 2015-03-03 2020-04-29 Huawei Technologies Co., Ltd. Resource allocation method and apparatus for virtual machines
CN106383747A (zh) * 2016-08-31 2017-02-08 华为技术有限公司 一种计算资源调度方法及装置

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105242954A (zh) * 2014-06-12 2016-01-13 华为技术有限公司 一种虚拟cpu与物理cpu之间的映射方法及电子设备
CN104615549A (zh) * 2015-01-19 2015-05-13 杭州华三通信技术有限公司 一种虚拟系统中域管理方法和装置

Also Published As

Publication number Publication date
WO2018149157A1 (zh) 2018-08-23
EP3572940A1 (en) 2019-11-27
CN108459906A (zh) 2018-08-28
US20190377612A1 (en) 2019-12-12
EP3572940A4 (en) 2020-03-04

Similar Documents

Publication Publication Date Title
CN108132838B (zh) 一种图数据处理的方法、装置及系统
CN106445576B (zh) 主机板及其计算机实现方法及非暂态计算机可读储存装置
CN106371894B (zh) 一种配置方法、装置和数据处理服务器
CN108459906B (zh) 一种vcpu线程的调度方法及装置
US20130024646A1 (en) Method and Simulator for Simulating Multiprocessor Architecture Remote Memory Access
US11681544B2 (en) Interference-aware scheduling service for virtual GPU enabled systems
CN105830026A (zh) 用于调度来自虚拟机的图形处理单元工作负荷的装置和方法
US11188365B2 (en) Memory overcommit by speculative fault
CN106445631B (zh) 一种布署虚拟机的方法、系统以及物理服务器
US20150339155A1 (en) Virtual Processor States
CN114398172A (zh) 资源配置方法、装置、电子设备及计算机可读存储介质
US20130117549A1 (en) Method for executing multiple operating systems and electronic apparatus
CN113010265A (zh) Pod的调度方法、调度器、存储插件及系统
US20090276200A1 (en) Non-destructive simulation of a failure in a virtualization environment
US9792042B2 (en) Systems and methods for set membership matching
US10976934B2 (en) Prioritizing pages to transfer for memory sharing
US11656888B2 (en) Performing an application snapshot using process virtual machine resources
US20120124355A1 (en) Single volume image file extraction
US8689230B2 (en) Determination of running status of logical processor
US20130238884A1 (en) Computer-readable recording medium storing memory dump program, information processing apparatus, and memory dump method
CN115080242A (zh) 一种pci设备资源统一调度的方法、装置及介质
US10585736B2 (en) Incremental dump with fast reboot
US9753670B2 (en) Prioritizing memory pages to copy for memory migration
US11574087B2 (en) Multi-processor simulation on a multi-core machine
CN113656141A (zh) 一种输入/输出i/o请求处理方法和主机设备

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