基于KVM平台的虚拟机CPU资源预留算法制造技术

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

【技术实现步骤摘要】

本专利技术涉及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=Nvcpu*t*RiΣ2n(Ri)]]>计算得到;所述Ti通过公式:Ti=T*Nvcpu*t*RiΣ2n(Ri)]]>计算得到。进一步的为更好的实现本专利技术,特别采用下述设置方式:所述t为100ms,所述T为1s。进一步的为更好的实现本专利技术,特别采用下述设置方式:在步骤1)中,所述根据虚拟机优先级公式计算出虚拟机的优先级Si具体为:利用虚拟机优先级公式计算出虚拟机的优先级Si,其中,i=2,3,4……n,n为主机最大支持的虚拟机个数。进一步的为更好的实现本专利技术,特别采用下述设置方式:所述用户设置的资源预留参数通过在用户态内采用下述步骤得到;(1)设置预留值,用户通过libvirt调用virsh命令设置虚拟机的CPU资源预留参数;(2)经步骤(1)后,用户通过设置、修改、取消中的任意一种或多种此种方式进行CPU资源预留参数的操作;(3)经步骤(2)后,通过IOCTL系统进行调用交给内核态处理。本专利技术与现有技术相比,具有以下优点及有益效果:本专利技术通过对KVM接口调用获取虚拟机运行过程中的相关数据,分析判断虚拟机的运行状态,及时采取相应的调度策略,调整虚拟机处理器资源,以充分发挥处理器作用,提高虚拟机响应性能;保证优先级高的任务能够有充足的资源完成执行目标,一个调度周期中,保证高优先级任务充分完成的情况下,恢复剩余时间为公平调度模式,使更多任务能够及时被响应。本专利技术通过进程优先级方式来保证虚拟机的资源预留。本专利技术通过用户态和内核态分工实现,可以保证虚拟机在资源使<本文档来自技高网
...

【技术保护点】
基于KVM平台的虚拟机CPU资源预留算法,其特征在于:包括以下步骤:1)在内核态通过获取用户设置的资源预留参数,根据虚拟机优先级公式计算出虚拟机的优先级Si的理论值,通过虚拟机的进程id找到内核态task_struct数据结构,将task_struct数据结构中的进程优先级设置为Si;2)经步骤1)后,另一个以t为周期的虚拟机定时器任务将会被触发,在该任务中通过对虚拟机的优先级Si的理论值与虚拟机实际运行时间值进行比较,当虚拟机实际运行时间值大于等于虚拟机的优先级Si的理论值时,所述达到理论预留时间片的虚拟机将从资源预留算法恢复到默认的CFS算法。

【技术特征摘要】
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...

【专利技术属性】
技术研发人员:辜文斌佘文魁周锐张慧郭晶田丹
申请(专利权)人:四川中电启明星信息技术有限公司
类型:发明
国别省市:四川;51

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1