CN105550040A - 基于kvm平台的虚拟机cpu资源预留算法 - Google Patents

基于kvm平台的虚拟机cpu资源预留算法 Download PDF

Info

Publication number
CN105550040A
CN105550040A CN201511019980.0A CN201511019980A CN105550040A CN 105550040 A CN105550040 A CN 105550040A CN 201511019980 A CN201511019980 A CN 201511019980A CN 105550040 A CN105550040 A CN 105550040A
Authority
CN
China
Prior art keywords
virtual machine
priority
resource reservation
time
user
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
Application number
CN201511019980.0A
Other languages
English (en)
Other versions
CN105550040B (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.)
SICHUAN ZHONGDIAN VENUS INFORMATION TECHNOLOGY Co Ltd
Original Assignee
SICHUAN ZHONGDIAN VENUS INFORMATION TECHNOLOGY 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 SICHUAN ZHONGDIAN VENUS INFORMATION TECHNOLOGY Co Ltd filed Critical SICHUAN ZHONGDIAN VENUS INFORMATION TECHNOLOGY Co Ltd
Priority to CN201511019980.0A priority Critical patent/CN105550040B/zh
Publication of CN105550040A publication Critical patent/CN105550040A/zh
Application granted granted Critical
Publication of CN105550040B publication Critical patent/CN105550040B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

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/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/5038Allocation 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)
  • Debugging And Monitoring (AREA)
  • Stored Programmes (AREA)

Abstract

本发明公开了基于KVM平台的虚拟机CPU资源预留算法,包括以下步骤:在内核态通过获取用户设置的资源预留参数,根据虚拟机优先级公式计算出虚拟机的优先级Si的理论值,通过虚拟机的进程id找到内核态task_struct数据结构,且进程优先级设置为Si;之后,另一个以t为周期的虚拟机定时器任务将会被触发,在该任务中通过对虚拟机的优先级Si的理论值与虚拟机实际运行时间值进行比较,当虚拟机实际运行时间值大于等于虚拟机的优先级Si的理论值时,从资源预留算法恢复到默认的CFS算法;通过对KVM接口调用获取虚拟机运行过程中的相关数据,提高虚拟机响应性能;保证优先级高的任务能够有充足的资源完成执行目标。

Description

基于KVM平台的虚拟机CPU资源预留算法
技术领域
本发明涉及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通过公式: t i = N v c p u * t * R i Σ 2 n ( R i ) 计算得到;
所述Ti通过公式: T i = T * N v c p u * t * R i Σ 2 n ( R i ) 计算得到。
进一步的为更好的实现本发明,特别采用下述设置方式:所述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开发而成。
libvirtAPI层:管理虚拟机的通用接口层。
IOCTL:用户态访问内核态的系统调用接口。
KVM虚拟机CPU虚拟化的实现原理和运行机制:
KVM虚拟化实现方式是硬件辅助虚拟化技术,它要求硬件处理器支持虚拟化技术。
KVM中的虚拟机具有多个虚拟处理器VCPU,每个VCPU对应一个KQEMU线程。在KVM虚拟机创建、运行过程中,KQEMU进程主要负责虚拟化环境的初始化、相关设备的模拟、以及客户机操作系统镜像的加载,而KVM线程负责实现虚拟处理器(VCPU)的创建、初始化、运行以及相关的退出处理。KQEMU线程与KVM内核模块间以ioctl的方式进行交互,KVM内核模块与客户软件之间通过VMExit和VMentry操作进行切换。由于QEMU进程与KVM线程、KVMDriver模块和GuestOS分别运行在用户模式、内核模式和客户模式下,因此在虚拟机的整个运行过程中会发生三个模式之间的切换,在KVM方案的实现过程中,QEMU会创建一个KVM线程,用于实现KVM虚拟机VCPU的相关操作。KVMDriver模块与虚拟机之间的切换,则是由VT-x提供的VMExit和VMentry操作实现的。
虚拟化环境中处理器资源管理:
在虚拟化环境中,每一个虚拟机可以拥有一个或多个VCPU,客户操作系统中的应用程序都需要在VCPU上运行,客户操作系统负责调度进程在其拥有的VCPU上执行。虚拟机使用的VCPU资源由VMM(KVM)提供,KVM对运行在其上的多个VM所使用的VCPU进行调度,使得VCPU依照一定的调度算法运行在物理处理器(PCPU)之上。
在Linux系统中,默认的是抢占式调度方式,即当有优先级更高或者更紧急的进程到来时,系统将会剥夺当前进程的处理器资源,把处理器资源分配给更高优先级或者更紧急的进程。由于在当前的KVM的实现方案中,KVM和一般的Linux的进程一样,采用的是根据时间片轮转的实时调度策略和默认的运行优先级。因此当KVM虚拟机要被Linux调度模块调度时,需要和其它Linux进程参与处理器资源的竞争,对获得处理器资源具有同等的机会。
在实现本发明时将涉及到如表1所列举的参数。
表1
参数名 参数含义
Ri 虚拟机的资源预留值
Si 虚拟机的优先级
t 虚拟机统计小周期
T 虚拟机统计大周期
Nvcpu 虚拟机VCPU数
Npcpu 主机PCPU数
ti t周期内虚拟机达到预留时间片的理论值
Ti 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通过公式: t i = N v c p u * t * R i Σ 2 n ( R i ) 计算得到;
所述Ti通过公式: T i = T * N v c p u * t * R i Σ 2 n ( R i ) 计算得到。
实施例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通过公式: t i = N v c p u * t * R i Σ 2 n ( R i ) 计算得到;
所述Ti通过公式: T i = T * N v c p u * t * R i Σ 2 n ( R i ) 计算得到。
在本实施例中,i=2,3,4……n,n为主机最大支持的虚拟机个数。
本发明在进行测试试验时,测试环境在实现资源预留的KVM主机上,部署3个centos7虚拟机,主机配置信息为IBM3550环境,2个Intel(R)Xeon(R)CPUE56062.13GHz,每个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的理论值时,所述达到理论预留时间片的虚拟机将从资源预留算法恢复到默认的CFS算法。
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恢复成默认值,所述达到理论预留时间片的虚拟机将从资源预留算法恢复到默认的CFS算法;如果为否,则按照设置好的虚拟机的优先级Si继续运行。
3.根据权利要求2所述的基于KVM平台的虚拟机CPU资源预留算法,其特征在于:所述理论预留时间片包括t周期内虚拟机达到预留时间片的理论值ti和/或T周期内虚拟机达到预留时间片的理论值Ti
所述ti通过公式:计算得到;
所述Ti通过公式:计算得到。
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系统进行调用交给内核态处理。
CN201511019980.0A 2015-12-29 2015-12-29 基于kvm平台的虚拟机cpu资源预留算法 Active CN105550040B (zh)

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 true CN105550040A (zh) 2016-05-04
CN105550040B 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)

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107045468A (zh) * 2017-02-09 2017-08-15 郑州云海信息技术有限公司 一种虚拟机集群系统资源预留方法及装置
CN107193637A (zh) * 2017-05-27 2017-09-22 郑州云海信息技术有限公司 一种kvm虚拟机的cpu热添加方法及装置
CN108512780A (zh) * 2017-02-28 2018-09-07 华为技术有限公司 定时器实现方法及相关装置
CN109445847A (zh) * 2018-07-09 2019-03-08 北京东土科技股份有限公司 工业服务器微内核架构实现方法
CN111338802A (zh) * 2020-02-29 2020-06-26 苏州浪潮智能科技有限公司 一种优化大数据集群性能的方法、系统、设备及介质
CN113760455A (zh) * 2021-08-13 2021-12-07 北京和利时系统工程有限公司 一种实现虚拟化资源调度的方法和装置
CN113784342A (zh) * 2021-09-22 2021-12-10 四川中电启明星信息技术有限公司 一种基于物联网终端的加密通讯方法及系统
CN113791867A (zh) * 2021-09-16 2021-12-14 江苏安超云软件有限公司 调整kvm虚拟机服务进程优先级的方法及应用
CN115454576A (zh) * 2022-09-29 2022-12-09 安超云软件有限公司 一种虚拟机进程管理方法、系统及电子设备

Citations (5)

* Cited by examiner, † Cited by third party
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 重庆大学 一种基于移动虚拟化系统的非易失性存储器调度优化方法

Patent Citations (5)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
Title
DIEGO ONGARO等: "《Scheduling I/O in Virtual Machine Monitors》", 《VEE "08》 *

Cited By (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107045468A (zh) * 2017-02-09 2017-08-15 郑州云海信息技术有限公司 一种虚拟机集群系统资源预留方法及装置
CN108512780B (zh) * 2017-02-28 2020-12-15 华为技术有限公司 定时器实现方法及相关装置
CN108512780A (zh) * 2017-02-28 2018-09-07 华为技术有限公司 定时器实现方法及相关装置
CN107193637A (zh) * 2017-05-27 2017-09-22 郑州云海信息技术有限公司 一种kvm虚拟机的cpu热添加方法及装置
CN109445847A (zh) * 2018-07-09 2019-03-08 北京东土科技股份有限公司 工业服务器微内核架构实现方法
CN111338802B (zh) * 2020-02-29 2022-08-09 苏州浪潮智能科技有限公司 一种优化大数据集群性能的方法、系统、设备及介质
CN111338802A (zh) * 2020-02-29 2020-06-26 苏州浪潮智能科技有限公司 一种优化大数据集群性能的方法、系统、设备及介质
CN113760455A (zh) * 2021-08-13 2021-12-07 北京和利时系统工程有限公司 一种实现虚拟化资源调度的方法和装置
CN113791867A (zh) * 2021-09-16 2021-12-14 江苏安超云软件有限公司 调整kvm虚拟机服务进程优先级的方法及应用
CN113784342A (zh) * 2021-09-22 2021-12-10 四川中电启明星信息技术有限公司 一种基于物联网终端的加密通讯方法及系统
CN113784342B (zh) * 2021-09-22 2023-05-26 四川中电启明星信息技术有限公司 一种基于物联网终端的加密通讯方法及系统
CN115454576A (zh) * 2022-09-29 2022-12-09 安超云软件有限公司 一种虚拟机进程管理方法、系统及电子设备
CN115454576B (zh) * 2022-09-29 2024-02-02 安超云软件有限公司 一种虚拟机进程管理方法、系统及电子设备

Also Published As

Publication number Publication date
CN105550040B (zh) 2019-06-14

Similar Documents

Publication Publication Date Title
CN105550040A (zh) 基于kvm平台的虚拟机cpu资源预留算法
Basaran et al. Supporting preemptive task executions and memory copies in GPGPUs
US7945908B1 (en) Method and system for improving the accuracy of timing and process accounting within virtual machines
Vaishnav et al. Resource elastic virtualization for FPGAs using OpenCL
CN101894047A (zh) 一种基于内核虚拟机调度策略的实现方法
EP2446357A1 (en) High-throughput computing in a hybrid computing environment
US11132220B2 (en) Process scheduling
US10983846B2 (en) User space pre-emptive real-time scheduler
Bai et al. Task-aware based co-scheduling for virtual machine system
US10956193B2 (en) Hypervisor virtual processor execution with extra-hypervisor scheduling
Zhou et al. Task mapping in heterogeneous embedded systems for fast completion time
CN106250217A (zh) 一种多虚拟处理器间的同步调度方法及其调度系统
Li et al. Efficient algorithms for task mapping on heterogeneous CPU/GPU platforms for fast completion time
CN111597044A (zh) 任务调度方法、装置、存储介质及电子设备
Ma et al. Performance Tuning Towards a KVM-based Embedded Real-Time Virtualization System.
Chéramy et al. Simulation of real-time multiprocessor scheduling with overheads
Shih et al. Fairness scheduler for virtual machines on heterogonous multi-core platforms
Sousa et al. The Carousel-EDF scheduling algorithm for multiprocessor systems
De Bock et al. Real-time virtualization with Xvisor
Kinebuchi et al. Task grain scheduling for hypervisor-based embedded system
Wu et al. Synchronization-aware scheduling for virtual clusters in cloud
Park Task-I/O Co-scheduling for pfair real-time scheduler in embedded multi-core systems
KR20130048504A (ko) 임계성에 기초한 파티션 스케쥴링 장치 및 방법
Sun et al. CRQ-based fair scheduling on composable multicore architectures
Wang et al. Unleashing the Power of Preemptive Priority-based Scheduling for Real-Time GPU Tasks

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