CN105550040B - 基于kvm平台的虚拟机cpu资源预留算法 - Google Patents
基于kvm平台的虚拟机cpu资源预留算法 Download PDFInfo
- Publication number
- CN105550040B CN105550040B CN201511019980.0A CN201511019980A CN105550040B CN 105550040 B CN105550040 B CN 105550040B CN 201511019980 A CN201511019980 A CN 201511019980A CN 105550040 B CN105550040 B CN 105550040B
- Authority
- CN
- China
- Prior art keywords
- virtual machine
- priority
- theoretical value
- cpu
- value
- 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
Links
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/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
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
- Debugging And Monitoring (AREA)
Abstract
本发明公开了基于KVM平台的虚拟机CPU资源预留算法,包括以下步骤:在内核态通过获取用户设置的资源预留参数,根据虚拟机优先级公式计算出虚拟机的优先级Si的理论值,通过虚拟机的进程id找到内核态task_struct数据结构,且进程优先级设置为Si;之后,另一个以t为周期的虚拟机定时器任务将会被触发,在该任务中通过对虚拟机的优先级Si的理论值与虚拟机实际运行时间值进行比较,当虚拟机实际运行时间值大于等于虚拟机的优先级Si的理论值时,从资源预留算法恢复到默认的CFS算法;通过对KVM接口调用获取虚拟机运行过程中的相关数据,提高虚拟机响应性能;保证优先级高的任务能够有充足的资源完成执行目标。
Description
技术领域
本发明涉及CPU虚拟化、资源预留等技术领域,具体的说,是基于KVM平台的虚拟机CPU资源预留算法。
背景技术
随着虚拟化平台的部署实施,信息化建设的基本架构、业务处理等方式都发生了转变。虚拟化技术是对单台机器上的真实物理资源进行重新划分、配置,形成多个独立的虚拟分区,分别作为独立的操作***进行工作。虚拟化涉及的资源包括CPU、内存、磁盘、IO等,其中CPU虚拟化是很重要的构成部分。在KVM全虚拟化技术框架下,虚拟机可以过载使用物理资源,即给虚拟机分配的CPU和内存数量多于物理机上实际存在的资源。
在KVM中默认的CPU分配算法是CFS(完全公平调度)算法,CFS的总体思想就是尽量使进程按照设定的优先级尽量公平的被调度。以前的进程被调度执行的硬件时间片和操作***调度的软件时间片差好几个数量级,CFS算法是基于一个理想的,精确的多任务CPU设计的,算法模拟了硬件的实现,通过分割CPU的时间使得每个任务的运行时间总是相等的。实现上,在每个任务控制块的调度实体上有一个变量vruntime保存了本任务的运行时间,调度时找时间最小的任务运行,使得最后每个任务的运行时间都相等。不会在运行时间最小的任务刚大于第二小的任务时就触发调度,这样会导致***频繁的进行任务切换消耗更多资源。例如刚开始任务t1和t2的vruntime相等,任务t1运行非常小的时间,判断t1的运行时间大于t2,检查这两者的差值是否大于***设置的调度粒度,即t1->vruntime-t2->vruntime>sysctl_sched_min_granularity才运行触发一次调度。t1、t2的状态为ready。另外一个调度粒度是sysctl_sched_wakeup_granularity,这个表示当前任务的运行时间必须大于被唤醒任务的运行时间+该粒度值,才运行触发调度。所有待调度的任务以vruntime为key值,通过rbtree进行排序。任务触发一次yield操作时,会把任务放到rbtree的最右边,表示最后调度。
CFS算法中也可以根据任务的优先级分配运行时间,相同运行时间下,可以保证优先级高的任务运行的时间更长。虽然优先级高的任务运行时间更长,但是不能保证高优先级任务能在分配的运行时间内比其他任务先完成,这可能仍然达不到高优先级任务首先被执行的目的。
发明内容
本发明的目的在于提供基于KVM平台的虚拟机CPU资源预留算法,通过对KVM接口调用获取虚拟机运行过程中的相关数据,分析判断虚拟机的运行状态,及时采取相应的调度策略,调整虚拟机处理器资源,以充分发挥处理器作用,提高虚拟机响应性能;保证优先级高的任务能够有充足的资源完成执行目标,一个调度周期中,保证高优先级任务充分完成的情况下,恢复剩余时间为公平调度模式,使更多任务能够及时被响应。
本发明通过下述技术方案实现:基于KVM平台的虚拟机CPU资源预留算法,包括以下步骤:
1)在内核态通过获取用户设置的资源预留参数,根据虚拟机优先级公式计算出虚拟机的优先级Si的理论值,通过虚拟机的进程id找到内核态task_struct数据结构,将task_struct数据结构中的进程优先级设置为Si;
2)经步骤1)后,另一个以t为周期的虚拟机定时器任务将会被触发,在该任务中通过对虚拟机的优先级Si的理论值与虚拟机实际运行时间值进行比较,当虚拟机实际运行时间值大于等于虚拟机的优先级Si的理论值时,所述达到理论预留时间片的虚拟机将从资源预留算法恢复到默认的CFS算法。
进一步的为更好的实现本发明,特别采用下述设置方式:所述步骤2)包括以下具体步骤:
2-1)内核态获取预留参数后,比较判断以t为周期的虚拟机定时器当前是否达到虚拟机统计时间T周期;
2-2)经步骤2-1)后,如果以t为周期的虚拟机定时器当前达到虚拟机统计时间T周期,则将虚拟机的调度优先级设置成虚拟机的优先级Si理论值,否则执行步骤2-3);
2-3)判断用户是否重新更改了虚拟机的资源预留值Ri,或者是否有新的虚拟机加入到资源预留队列中,如果为是则重复步骤2-2),如果为否则执行步骤2-4);
2-4)计算每个虚拟机的实际运行时间;
2-5)经步骤2-4)后,判断虚拟机实际运行时间是否大于等于理论预留时间片,如果为是则将大于等于理论预留时间片的虚拟机的优先级Si恢复成默认值,所述达到理论预留时间片的虚拟机将从资源预留算法恢复到默认的CFS算法;如果为否,则按照设置好的虚拟机的优先级Si继续运行。
进一步的为更好的实现本发明,特别采用下述设置方式:所述理论预留时间片包括t周期内虚拟机达到预留时间片的理论值ti和/或T周期内虚拟机达到预留时间片的理论值Ti;
所述ti通过公式:计算得到;
所述Ti通过公式:计算得到。
进一步的为更好的实现本发明,特别采用下述设置方式:所述t为100ms,所述T为1s。
进一步的为更好的实现本发明,特别采用下述设置方式:在步骤1)中,所述根据虚拟机优先级公式计算出虚拟机的优先级Si具体为:利用虚拟机优先级公式计算出虚拟机的优先级Si,其中,i=2,3,4……n,n为主机最大支持的虚拟机个数。
进一步的为更好的实现本发明,特别采用下述设置方式:所述用户设置的资源预留参数通过在用户态内采用下述步骤得到;
(1)设置预留值,用户通过libvirt调用virsh命令设置虚拟机的CPU资源预留参数;
(2)
经步骤(1)后,用户通过设置、修改、取消中的任意一种或多种此种方式进行CPU资源预留参数的操作;
(3)经步骤(2)后,通过IOCTL***进行调用交给内核态处理。
本发明与现有技术相比,具有以下优点及有益效果:
本发明通过对KVM接口调用获取虚拟机运行过程中的相关数据,分析判断虚拟机的运行状态,及时采取相应的调度策略,调整虚拟机处理器资源,以充分发挥处理器作用,提高虚拟机响应性能;保证优先级高的任务能够有充足的资源完成执行目标,一个调度周期中,保证高优先级任务充分完成的情况下,恢复剩余时间为公平调度模式,使更多任务能够及时被响应。
本发明通过进程优先级方式来保证虚拟机的资源预留。
本发明通过用户态和内核态分工实现,可以保证虚拟机在资源使用饱和的环境中得到所预留的CPU资源,从而确保业务的实时性能。
本发明通过改变KVM虚拟机的调度策略、运行优先级,以及添加新的调度策略和绑定虚拟机操作***在指定的处理器上运行,使KVM虚拟机比其它Linux进程更有机会占有处理器资源。
附图说明
图1为本发明在用户态处理时的流程图。
图2为本发明在内核态处理时的流程图。
图3为虚拟机在优化前后CPU资源统计图。
具体实施方式
下面结合实施例对本发明作进一步地详细说明,但本发明的实施方式不限于此。
CPU虚拟化:CPU的虚拟化技术就是单CPU模拟多CPU并行,允许一个平台同时运行多个操作***,并且应用程序都可以在相互独立的空间内运行而互不影响,从而显著提高计算机的工作效率。
资源预留:资源预留是网格任务调度中一种普遍采用的策略,可以保证任务在开始执行时获得足够的资源。当前资源预留的研究主要集中在计算资源预留的情况,本申请文件中的资源预留是对虚拟机进程运行时虚拟处理器所占用的物理处理器资源的预留。
task_struct:linux内核的进程描述符,用于管理内核进程。
virsh:管理虚拟机的接口命令。
Libvirt:是一套免费、开源的支持Linux下主流虚拟化工具的C函数库,其旨在为包括Xen在内的各种虚拟化工具提供一套方便、可靠的编程接口,支持与C,C++,Ruby,Python等多种主流开发语言的绑定。当前主流Linux平台上默认的虚拟化管理工具virt-manager(图形化),virt-install(命令行模式)等均基于libvirt开发而成。
libvirt API层:管理虚拟机的通用接口层。
IOCTL:用户态访问内核态的***调用接口。
KVM虚拟机CPU虚拟化的实现原理和运行机制:
KVM虚拟化实现方式是硬件辅助虚拟化技术,它要求硬件处理器支持虚拟化技术。
KVM中的虚拟机具有多个虚拟处理器VCPU,每个VCPU对应一个KQEMU线程。在KVM虚拟机创建、运行过程中,KQEMU进程主要负责虚拟化环境的初始化、相关设备的模拟、以及客户机操作***镜像的加载,而KVM线程负责实现虚拟处理器(VCPU)的创建、初始化、运行以及相关的退出处理。KQEMU线程与KVM内核模块间以ioctl的方式进行交互,KVM内核模块与客户软件之间通过VM Exit和VM entry操作进行切换。由于QEMU进程与KVM线程、KVMDriver模块和Guest OS分别运行在用户模式、内核模式和客户模式下,因此在虚拟机的整个运行过程中会发生三个模式之间的切换,在KVM方案的实现过程中,QEMU会创建一个KVM线程,用于实现KVM虚拟机VCPU的相关操作。KVM Driver模块与虚拟机之间的切换,则是由VT-x提供的VM Exit和VM entry操作实现的。
虚拟化环境中处理器资源管理:
在虚拟化环境中,每一个虚拟机可以拥有一个或多个VCPU,客户操作***中的应用程序都需要在VCPU上运行,客户操作***负责调度进程在其拥有的VCPU上执行。虚拟机使用的VCPU资源由VMM(KVM)提供,KVM对运行在其上的多个VM所使用的VCPU进行调度,使得VCPU依照一定的调度算法运行在物理处理器(PCPU)之上。
在Linux***中,默认的是抢占式调度方式,即当有优先级更高或者更紧急的进程到来时,***将会剥夺当前进程的处理器资源,把处理器资源分配给更高优先级或者更紧急的进程。由于在当前的KVM的实现方案中,KVM和一般的Linux的进程一样,采用的是根据时间片轮转的实时调度策略和默认的运行优先级。因此当KVM虚拟机要被Linux调度模块调度时,需要和其它Linux进程参与处理器资源的竞争,对获得处理器资源具有同等的机会。
在实现本发明时将涉及到如表1所列举的参数。
表1
参数名 | 参数含义 |
Ri | 虚拟机的资源预留值 |
S<sub>i</sub> | 虚拟机的优先级 |
t | 虚拟机统计小周期 |
T | 虚拟机统计大周期 |
N<sub>vcpu</sub> | 虚拟机VCPU数 |
N<sub>pcpu</sub> | 主机PCPU数 |
t<sub>i</sub> | t周期内虚拟机达到预留时间片的理论值 |
T<sub>i</sub> | T周期内虚拟机达到预留时间片的理论值 |
实施例1:
基于KVM平台的虚拟机CPU资源预留算法,包括以下步骤:
1)在内核态通过获取用户设置的资源预留参数,根据虚拟机优先级公式计算出虚拟机的优先级Si的理论值,通过虚拟机的进程id找到内核态task_struct数据结构,将task_struct数据结构中的进程优先级设置为Si;
2)经步骤1)后,另一个以t为周期的虚拟机定时器任务将会被触发,在该任务中通过对虚拟机的优先级Si的理论值与虚拟机实际运行时间值进行比较,当虚拟机实际运行时间值大于等于虚拟机的优先级Si的理论值时,所述达到理论预留时间片的虚拟机将从资源预留算法恢复到默认的CFS算法。
实施例2:
本实施例是在上述实施例的基础上进一步优化,进一步的为更好的实现本发明,特别采用下述设置方式:所述步骤2)包括以下具体步骤:
2-1)内核态获取预留参数后,比较判断以t为周期的虚拟机定时器当前是否达到虚拟机统计时间T周期;
2-2)经步骤2-1)后,如果以t为周期的虚拟机定时器当前达到虚拟机统计时间T周期,则将虚拟机的调度优先级设置成虚拟机的优先级Si理论值,否则执行步骤2-3);
2-3)判断用户是否重新更改了虚拟机的资源预留值Ri,或者是否有新的虚拟机加入到资源预留队列中,如果为是则重复步骤2-2),如果为否则执行步骤2-4);
2-4)计算每个虚拟机的实际运行时间;
2-5)经步骤2-4)后,判断虚拟机实际运行时间是否大于等于理论预留时间片,如果为是则将大于等于理论预留时间片的虚拟机的优先级Si恢复成默认值,所述达到理论预留时间片的虚拟机将从资源预留算法恢复到默认的CFS算法;如果为否,表示虚拟机的运行时间没有达到资源预留的时间片,则按照设置好的虚拟机的优先级Si继续运行。
实施例3:
本实施例是在上述实施例的基础上进一步优化,进一步的为更好的实现本发明,特别采用下述设置方式:所述理论预留时间片包括t周期内虚拟机达到预留时间片的理论值ti和/或T周期内虚拟机达到预留时间片的理论值Ti;
所述ti通过公式:计算得到;
所述Ti通过公式:计算得到。
实施例4:
本实施例是在实施例2或3的基础上进一步优化,进一步的为更好的实现本发明,特别采用下述设置方式:所述t为100ms,所述T为1s。
实施例5:
本实施例是在上述任一实施例的基础上进一步优化,进一步的为更好的实现本发明,特别采用下述设置方式:在步骤1)中,所述根据虚拟机优先级公式计算出虚拟机的优先级Si具体为:利用虚拟机优先级公式计算出虚拟机的优先级Si,其中,i=2,3,4……n,n为主机最大支持的虚拟机个数。
实施例6:
本实施例是在上述任一实施例的基础上进一步优化,进一步的为更好的实现本发明,特别采用下述设置方式:所述用户设置的资源预留参数通过在用户态内采用下述步骤得到;
(1)设置预留值,用户通过libvirt调用virsh命令设置虚拟机的CPU资源预留参数;
(2)
经步骤(1)后,用户通过设置、修改、取消中的任意一种或多种此种方式进行CPU资源预留参数的操作;
(3)经步骤(2)后,通过IOCTL***进行调用交给内核态处理。
实施例7:
本实施例是在上述任一实施例的基础上进一步优化,结合图1、、图2所示,基于KVM平台的虚拟机CPU资源预留算法,包括以下步骤:
(a):在用户态,提供给用户调用接口,并通过***调用将用户设置的资源预留参数传递给内核态,包括以下具体步骤:
(a.1)Virsh命令设置虚拟机cpu预留值:用户通过libvirt调用virsh命令设置虚拟机的CPU资源预留参数;
(a.2)经步骤(a.1)后,用户通过设置预留、修改预留、取消预留中的任意一种或多种此种方式进行CPU资源预留参数的操作;
(a.3)经步骤(a.2)后,通过IOCTL***进行调用交给内核态处理。
(b)在内核态内,通过获取用户设置的资源预留参数,根据虚拟机优先级公式计算出虚拟机的优先级Si的理论值,通过虚拟机的进程id找到内核态task_struct数据结构,将task_struct数据结构中的进程优先级设置为Si;而后,另一个以t为周期的虚拟机定时器任务将会被触发,在该任务中通过虚拟机的优先级Si的理论值与虚拟机实际运行时间值进行比较,当虚拟机实际运行时间值大于等于虚拟机的优先级Si的理论值时,达到理论预留时间片的虚拟机将从资源预留算法恢复到默认的CFS算法。
在内核态中进行处理时,设置了下述步骤:
(b.1)内核态获取预留参数后,比较判断以t为周期的虚拟机定时器(100ms定时器)当前是否达到虚拟机统计时间T周期(达到1s大周期);
(b.2)如果是,则将虚拟机的调度优先级设置成理论值,该理论值通过预留值计算出,亦即将虚拟机的调度优先级设置成虚拟机的优先级Si理论值,否则执行步骤(b.3);
(b.3)虚拟机的预留值发生变化或者有新的虚拟机加入到资源预留队列,即判断用户是否重新更改了虚拟机的资源预留值Ri,或者是否有新的虚拟机加入到资源预留队列中,如果为是则重复步骤(b.2),如果为否则执行步骤(b.4);
(b.4)计算每个虚拟机的实际运行时间;
(b.5)经步骤(b.4)后,对虚拟机实际运行时间已经达到预留时间片进行判断,即判断虚拟机实际运行时间是否达到理论预留时间片,如果为是则将达到理论预留时间片的虚拟机的优先级Si恢复成默认值,所述达到理论预留时间片的虚拟机将从资源预留算法恢复到默认的CFS算法;如果为否则End,则表示虚拟机的运行时间没有达到资源预留的时间片,按照设置好的虚拟机的优先级Si继续运行。
所述理论预留时间片包括t(100ms)周期内虚拟机达到预留时间片的理论值ti和/或T(1s)周期内虚拟机达到预留时间片的理论值Ti;
所述ti通过公式:计算得到;
所述Ti通过公式:计算得到。
在本实施例中,i=2,3,4……n,n为主机最大支持的虚拟机个数。
本发明在进行测试试验时,测试环境在实现资源预留的KVM主机上,部署3个centos7虚拟机,主机配置信息为IBM3550环境,2个Intel(R)Xeon(R)CPU [email protected],每个CPU有4核心,没有超线程,内存80G;虚拟机配置信息为8vcpu,2G内存。
测试场景是3个虚拟机其中2个虚拟机满负荷运行,另外一个虚拟机通过压力测试工具获取CPU资源,结合图3所示,可以看到优化前,该虚拟机即使使用CPU压力工具,也很难抢占到CPU的时间片,即CPU占用率在1s中以内上升的非常缓慢,而采用40%的CPU资源预留虚拟机瞬间就可以抢占到时间片,即CPU占用率瞬间就可以达到40%左右。因此,对于承载实行性高的虚拟机来说,如果使用本发明,可以保证虚拟机及时的获得CPU资源。
以上所述,仅是本发明的较佳实施例,并非对本发明做任何形式上的限制,凡是依据本发明的技术实质对以上实施例所作的任何简单修改、等同变化,均落入本发明的保护范围之内。
Claims (9)
1.基于KVM平台的虚拟机CPU资源预留方法,其特征在于:包括以下步骤:
1)在内核态通过获取用户设置的资源预留参数,根据虚拟机优先级公式计算出虚拟机的优先级Si的理论值,通过虚拟机的进程id找到内核态task_struct数据结构,将task_struct数据结构中的进程优先级设置为Si;
2)经步骤1)后,另一个以t为周期的虚拟机定时器任务将会被触发,在该任务中通过对虚拟机的优先级Si的理论值与虚拟机实际运行时间值进行比较,当虚拟机实际运行时间值大于等于虚拟机的优先级Si的理论值时,达到优先级Si的理论值的虚拟机将从资源预留方法恢复到默认的CFS算法;
所述虚拟机优先级公式为
其中,Ri为虚拟机的资源预留值。
2.根据权利要求1所述的基于KVM平台的虚拟机CPU资源预留方法,其特征在于:所述步骤2)包括以下具体步骤:
2-1)内核态获取预留参数后,比较判断以t为周期的虚拟机定时器当前是否达到虚拟机统计时间T周期;
2-2)经步骤2-1)后,如果以t为周期的虚拟机定时器当前达到虚拟机统计时间T周期,则将虚拟机的调度优先级设置成虚拟机的优先级Si理论值,否则执行步骤2-3);
2-3)判断用户是否重新更改了虚拟机的资源预留值Ri,或者是否有新的虚拟机加入到资源预留队列中,如果为是则重复步骤2-2),如果为否则执行步骤2-4);
2-4)计算每个虚拟机的实际运行时间;
2-5)经步骤2-4)后,判断虚拟机实际运行时间是否大于等于优先级Si的理论值,如果为是则将大于等于优先级Si的理论值的虚拟机的优先级Si恢复成默认值,所述达到优先级Si的理论值的虚拟机将从资源预留方法恢复到默认的CFS算法;如果为否,则按照设置好的虚拟机的优先级Si继续运行。
3.根据权利要求2所述的基于KVM平台的虚拟机CPU资源预留方法,其特征在于:所述优先级Si的理论值包括t周期内虚拟机达到预留时间片的理论值ti和/或T周期内虚拟机达到预留时间片的理论值Ti;
所述ti通过公式:计算得到;
所述Ti通过公式:计算得到;
所述Nvcpu为理论系数。
4.根据权利要求2或3所述的基于KVM平台的虚拟机CPU资源预留方法,其特征在于:所述t为100ms,所述T为1s。
5.根据权利要求4所述的基于KVM平台的虚拟机CPU资源预留方法,其特征在于:在步骤1)中,所述根据虚拟机优先级公式计算出虚拟机的优先级Si具体为:利用虚拟机优先级公式计算出虚拟机的优先级Si,其中,i=2,3,4……n,n为主机最大支持的虚拟机个数。
6.根据权利要求4所述的基于KVM平台的虚拟机CPU资源预留方法,其特征在于:所述用户设置的资源预留参数通过在用户态内采用下述步骤得到;
(1)设置预留值,用户通过libvirt调用virsh命令设置虚拟机的CPU资源预留参数;
(2)经步骤(1)后,用户通过设置、修改、取消中的任意一种或多种此种方式进行CPU资源预留参数的操作;
(3)经步骤(2)后,通过IOCTL***进行调用交给内核态处理。
7.根据权利要求1或2或3或6所述的基于KVM平台的虚拟机CPU资源预留方法,其特征在于:在步骤1)中,所述根据虚拟机优先级公式计算出虚拟机的优先级Si具体为:利用虚拟机优先级公式计算出虚拟机的优先级Si,其中,i=2,3,4……n,n为主机最大支持的虚拟机个数。
8.根据权利要求7所述的基于KVM平台的虚拟机CPU资源预留方法,其特征在于:所述用户设置的资源预留参数通过在用户态内采用下述步骤得到;
(1)设置预留值,用户通过libvirt调用virsh命令设置虚拟机的CPU资源预留参数;
(2)经步骤(1)后,用户通过设置、修改、取消中的任意一种或多种此种方式进行CPU资源预留参数的操作;
(3)经步骤(2)后,通过IOCTL***进行调用交给内核态处理。
9.根据权利要求1或2或3或5所述的基于KVM平台的虚拟机CPU资源预留方法,其特征在于:所述用户设置的资源预留参数通过在用户态内采用下述步骤得到;
(1)设置预留值,用户通过libvirt调用virsh命令设置虚拟机的CPU资源预留参数;
(2)经步骤(1)后,用户通过设置、修改、取消中的任意一种或多种此种方式进行CPU资源预留参数的操作;
(3)经步骤(2)后,通过IOCTL***进行调用交给内核态处理。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201511019980.0A CN105550040B (zh) | 2015-12-29 | 2015-12-29 | 基于kvm平台的虚拟机cpu资源预留算法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201511019980.0A CN105550040B (zh) | 2015-12-29 | 2015-12-29 | 基于kvm平台的虚拟机cpu资源预留算法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105550040A CN105550040A (zh) | 2016-05-04 |
CN105550040B true CN105550040B (zh) | 2019-06-14 |
Family
ID=55829237
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201511019980.0A Active CN105550040B (zh) | 2015-12-29 | 2015-12-29 | 基于kvm平台的虚拟机cpu资源预留算法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105550040B (zh) |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107045468A (zh) * | 2017-02-09 | 2017-08-15 | 郑州云海信息技术有限公司 | 一种虚拟机集群***资源预留方法及装置 |
CN108512780B (zh) * | 2017-02-28 | 2020-12-15 | 华为技术有限公司 | 定时器实现方法及相关装置 |
CN107193637A (zh) * | 2017-05-27 | 2017-09-22 | 郑州云海信息技术有限公司 | 一种kvm虚拟机的cpu热添加方法及装置 |
CN109445847B (zh) * | 2018-07-09 | 2021-09-17 | 北京东土科技股份有限公司 | 工业服务器微内核架构实现方法 |
CN111338802B (zh) * | 2020-02-29 | 2022-08-09 | 苏州浪潮智能科技有限公司 | 一种优化大数据集群性能的方法、***、设备及介质 |
CN113760455A (zh) * | 2021-08-13 | 2021-12-07 | 北京和利时***工程有限公司 | 一种实现虚拟化资源调度的方法和装置 |
CN113791867B (zh) * | 2021-09-16 | 2022-05-20 | 江苏安超云软件有限公司 | 调整kvm虚拟机服务进程优先级的方法及应用 |
CN113784342B (zh) * | 2021-09-22 | 2023-05-26 | 四川中电启明星信息技术有限公司 | 一种基于物联网终端的加密通讯方法及*** |
CN115454576B (zh) * | 2022-09-29 | 2024-02-02 | 安超云软件有限公司 | 一种虚拟机进程管理方法、***及电子设备 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101403983A (zh) * | 2008-11-25 | 2009-04-08 | 北京航空航天大学 | 基于虚拟机的多核处理器的资源监控方法及*** |
CN101894047A (zh) * | 2010-06-24 | 2010-11-24 | 北京航空航天大学 | 一种基于内核虚拟机调度策略的实现方法 |
CN102262557A (zh) * | 2010-05-25 | 2011-11-30 | 运软网络科技(上海)有限公司 | 通过总线架构构建虚拟机监控器的方法及性能服务框架 |
CN103870313A (zh) * | 2012-12-17 | 2014-06-18 | ***通信集团公司 | 一种虚拟机任务调度方法及*** |
CN105117285A (zh) * | 2015-09-09 | 2015-12-02 | 重庆大学 | 一种基于移动虚拟化***的非易失性存储器调度优化方法 |
-
2015
- 2015-12-29 CN CN201511019980.0A patent/CN105550040B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101403983A (zh) * | 2008-11-25 | 2009-04-08 | 北京航空航天大学 | 基于虚拟机的多核处理器的资源监控方法及*** |
CN102262557A (zh) * | 2010-05-25 | 2011-11-30 | 运软网络科技(上海)有限公司 | 通过总线架构构建虚拟机监控器的方法及性能服务框架 |
CN101894047A (zh) * | 2010-06-24 | 2010-11-24 | 北京航空航天大学 | 一种基于内核虚拟机调度策略的实现方法 |
CN103870313A (zh) * | 2012-12-17 | 2014-06-18 | ***通信集团公司 | 一种虚拟机任务调度方法及*** |
CN105117285A (zh) * | 2015-09-09 | 2015-12-02 | 重庆大学 | 一种基于移动虚拟化***的非易失性存储器调度优化方法 |
Non-Patent Citations (1)
Title |
---|
《Scheduling I/O in Virtual Machine Monitors》;Diego Ongaro等;《VEE "08》;ACM;20081231;全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN105550040A (zh) | 2016-05-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105550040B (zh) | 基于kvm平台的虚拟机cpu资源预留算法 | |
US11797327B2 (en) | Dynamic virtual machine sizing | |
US9727355B2 (en) | Virtual Hadoop manager | |
Zhang et al. | vGASA: Adaptive scheduling algorithm of virtualized GPU resource in cloud gaming | |
US9973512B2 (en) | Determining variable wait time in an asynchronous call-back system based on calculated average sub-queue wait time | |
US20110202924A1 (en) | Asynchronous Task Execution | |
WO2014015725A1 (zh) | 基于应用效果即时反馈的显卡虚拟化下资源调度***、方法 | |
US11579918B2 (en) | Optimizing host CPU usage based on virtual machine guest OS power and performance management | |
US11216301B2 (en) | Process scheduling in a processing system having at least one processor and shared hardware resources | |
Suo et al. | Preserving i/o prioritization in virtualized oses | |
CN111597044A (zh) | 任务调度方法、装置、存储介质及电子设备 | |
US10691495B2 (en) | Virtual processor allocation with execution guarantee | |
US11934890B2 (en) | Opportunistic exclusive affinity for threads in a virtualized computing system | |
CN103777995A (zh) | 虚拟化环境下基于群调度的同步优化调度***和调度方法 | |
CN116893893B (zh) | 一种虚拟机调度方法、装置、电子设备及存储介质 | |
US20240211297A1 (en) | Method for a primary virtual machine to schedule a task of sibling virtual machines | |
Jiang et al. | Developing co-scheduling mechanisms for virtual machines in clouds | |
Ding et al. | Scheduling Parallel Virtual Machine in Xen Based on Credit | |
Venkatesh et al. | Optimizing I/O intensive domain handling in Xen hypervisor for consolidated server environments | |
KR20220070625A (ko) | 가상화 환경에서 가상머신의 i/o 성능을 높이기 위한 스케줄링 방법 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |