一种虚拟机任务调度方法及系统技术方案

技术编号:15400407 阅读:148 留言:0更新日期:2017-05-24 10:15
本发明专利技术公开了一种虚拟机任务调度方法及系统。其中该方法包括:检测当前任务是否属于虚拟机组;当所述当前任务属于虚拟机组时,处理所述当前任务;当所述当前任务不属于虚拟机组时,按照默认的算法选择下一个任务。在任务调度时,能够感知到虚拟机的存在,从而在任务选择时优先选择属于虚拟机组的任务,相当于提高了虚拟机的优先级,进而提高了虚拟机的性能。

Virtual machine task scheduling method and system

The invention discloses a scheduling method and a system for a virtual machine task. The method includes: detecting whether the current task belongs to the virtual unit; when the current task belongs to the virtual unit when processing the current task; when the current task does not belong to the virtual unit, according to the default algorithm to select the next task. In task scheduling, able to perceive the virtual machine, resulting in the task selection when the first choice belongs to the virtual unit task, equivalent to improve the virtual machine priority, and improve the performance of virtual machine.

【技术实现步骤摘要】
一种虚拟机任务调度方法及系统
本专利技术涉及业务支撑
,尤其涉及一种虚拟机任务调度方法及系统。
技术介绍
任务调度是分布式数据库系统,云计算系统以及操作系统内核的重要组成部分,直接影响着整个系统的效率。目前,操作系统中最为流行的调度器为完全公平调度程序(CompletelyFairScheduler,CFS),按照完全公平的原则,将所有的任务抽象为调度实体(ScheduleEntity),每个调度实体对应一个或多个任务,不再区分交互式任务,因此,所有的任务都被统一对待。CFS的核心思想是围绕虚拟机时钟(VirtualClock)展开,虚拟运行时间(VirtualRun-time)是任务调度和任务运行时间的唯一度量标准,每次调度时,都会选择VirtualRun-time最小的任务来运行。另外,CFS抛弃了原来的优先级队列,如图1所示,将任务以树的形式组织,每个任务对应树上的一个节点,VirtualRun-time作为节点的键值(Key-Value),Key-Value最小的节点即为下一次要被调度的任务。在完全公平的原则下,系统中所有任务默认具有相同的权重,当然也可以通过一些方法改变任务的权重,如nice等,但是这种情况比较少见,任务的创建时,默认权重是相同的,尤其是系统任务。目前,最为流行的虚拟机(KernelVirtualMachine,KVM)实现的基本原理为:将每一个VirtualCPU(VCPU)实现为一个CPU任务和相应的执行IO操作的IO任务(进程)。因此,对虚拟机的调度就是对代表虚拟机的多个任务的调度。CFS按照基于虚拟文件系统的控制组公平调度策略将每一个VirtualMachine(VM)划分为一个独立的组,多个代表虚拟机的组与系统内的其他任务一起进行调度。如图2所示,根据CFS的分组策略,组1包含2个任务,组2包含3个任务,组3包含6个任务。虚拟化技术是云计算系统涉及的关键技术之一。云计算系统通常由大量的虚拟机构成,虚拟机的性能直接决定了云计算系统的性能,而云计算系统中虚拟机的调度又直接决定了虚拟机的性能以及云计算系统中资源利用率的高低,进而直接影响到云计算系统的利润率的高低,因此,如何优化云计算系统中虚拟机的调度策略是提高云计算系统性能与利润率的关键。从图2可以看出,操作系统目前对代表虚拟机的任务并没有特殊的对待,即不会区分当前任务是虚拟机任务还是其他普通任务,因此,虚拟机所需的计算能力和各种资源不能从操作系统级别进行优待,为了比普通任务具有更高的优先级或获得更多的资源,只能在应用程序层面进行修修补补来尽量的提高虚拟机的性能。按照目前的CFS调度策略,图2中任务的调度顺序树结构如图3所示,数字代表任务调度的顺序,即任务的Key-Value。在分析该调度拓扑结构之前,先做如下假设:(1)t1~t12代表12个任务,任务之间并不是完全独立的;(2)t1,t2,t4属于同一个VM;(3)t5,t6,t7,t8,t9和t11属于另外一个VM;(4)t10和t12之间有亲缘关系;(5)t3与其他任务没有任何关系,完全独立。按照CFS默认的调度策略,CFS看到的仅仅是12个独立的任务,感知不到任务之间的关系,因此,CFS会按照树的组织得出如下调度序列:t1->t2->t3->t4->t5->t6->t7->t8->t9->t10->t11->t12在分析默认的调度序列的优缺点之前,引入一个上下文相关的衡量参数:不相关上下文切换次数(ICSC,IncorrelateContextSwitchCount),表示完全独立的两个任务之间切换的次数。按照默认的CFS的调度策略,图3所示的调度序列的ICSC=6,具体为:t2->t3,t3->t4,t4->t5,t9->t10,t10->t11,t11->t12。CFS默认的调度策略虽然体现了公平,但是完全忽视了任务之间的关系,主要体现为:属于同一个虚拟机组的任务,任务特征相似度高,如共享地址空间,任务间通信频繁,程序局部性原理明显等。很明显,组间或独立的任务之间任务相似度低,因此,不想相关任务之间的上下文切换与特征相似的任务之间的上下文比起来,将会大大降低cache的命中率。众所周知,cache的命中率是影响系统性能的关键因素之一,所以,CFS默认的调度策略往往由于频繁的不相关任务之间的切换,极大地降低了整个系统的性能。基于以上分析,发现现有的CFS调度策略主要有以下缺点:1、将普通任务与代表虚拟机的任务同等对待,不能最大化虚拟机的性能。2、感知不到任务之间的关系,导致大量的不相关任务之间的切换,大大降低了cache的命中率,影响了系统整体的性能。3、由于云计算系统有大量的虚拟机构成,因此,默认的CFS调度策略非常不适合云计算系统。
技术实现思路
为了解决现有技术中虚拟机性能较低的技术问题,本专利技术提出一种虚拟机任务调度方法及系统。本专利技术的一个方面,提供一种虚拟机任务调度方法,包括:检测当前任务是否属于虚拟机组;当所述当前任务属于虚拟机组时,处理所述当前任务;当所述当前任务不属于虚拟机组时,按照默认的算法选择下一个任务。该方法还包括:调度所述当前任务所属虚拟机组内的其他任务进行处理,直到遍历完整个虚拟机组的任务。该方法还包括:当所述当前任务属于虚拟机组时,检测所述当前任务是否已被访问过;当所述当前任务已被访问过,退出所述虚拟机组,按照默认的算法选择下一个任务;当所述当前任务没有被访问过,为所述当前任务设置已被访问过的标识。本专利技术的另一个方面,提供一种虚拟机任务调度系统,包括:检测装置,用于检测当前任务是否属于虚拟机组;调度装置,用于当所述当前任务属于虚拟机组时,优先调度所述当前任务进行处理;当所述当前任务不属于虚拟机组时,按照默认的算法选择下一个任务。其中,调度装置,还用于优先调度所述当前任务所属虚拟机组内的其他任务进行处理,直到遍历完整个虚拟机组的任务。该系统还包括设置装置。所述检测装置,还用于当所述当前任务属于虚拟机组时,检测所述当前任务是否已被访问过;所述调度装置,用于当所述当前任务已被访问过,退出所述虚拟机组,按照默认的算法选择下一个任务;所述设置装置,用于当所述当前任务没有被访问过,为所述当前任务设置已被访问过的标识。本专利技术的虚拟机任务调度方法及系统,在任务调度时,能够感知到虚拟机的存在,从而在任务选择时优先选择属于虚拟机组的任务,相当于提高了虚拟机的优先级,进而提高了虚拟机的性能。另外,优先调度同一虚拟机的任务,使得代表同一虚拟机的多个任务之间连续调度,间接地提高了虚拟机的优先级,大大降低了不相关任务之间的上下文切换的次数,提高了cache的命中率,进而提高了整个系统的性能。进一步地,通过访问标志(access)限制了虚拟机组的运行时间,不会产生由于某个虚拟机组无限制运行而导致其他任务被“饿死”的情况,最大可能地降低了基于虚拟机感知的调度策略对系统公平性和响应时间的影响。附图说明图1是CFS中任务的红黑树组织结构图;图2是基于虚拟文件控制组的公平调度策略对任务的分组结构图;图3是默认的CFS调度策略任务调度顺序树的拓扑结构图;图4是本本文档来自技高网
...
一种虚拟机任务调度方法及系统

【技术保护点】
一种虚拟机任务调度方法,其特征在于,包括:检测当前任务是否属于虚拟机组;当所述当前任务属于虚拟机组时,处理所述当前任务;当所述当前任务不属于虚拟机组时,按照默认的算法选择下一个任务;当所述当前任务属于虚拟机组时,检测所述当前任务是否已被访问过;当所述当前任务已被访问过,退出所述虚拟机组,按照默认的算法选择下一个任务;当所述当前任务没有被访问过,为所述当前任务设置已被访问过的标识。

【技术特征摘要】
1.一种虚拟机任务调度方法,其特征在于,包括:检测当前任务是否属于虚拟机组;当所述当前任务属于虚拟机组时,处理所述当前任务;当所述当前任务不属于虚拟机组时,按照默认的算法选择下一个任务;当所述当前任务属于虚拟机组时,检测所述当前任务是否已被访问过;当所述当前任务已被访问过,退出所述虚拟机组,按照默认的算法选择下一个任务;当所述当前任务没有被访问过,为所述当前任务设置已被访问过的标识。2.根据权利要求1所述的方法,其特征在于,还包括:调度所述当前任务所属虚拟机组内的其他任务进行处理,直到遍历完整个虚拟机组的任务。3.根据权利要求1或2所述的方法,其特征在于,检测当前任务是否属于虚拟机组包括:检测所述当前任务的任务数据中是否包含虚拟机组表述符。4.根据权利要求3所述的方法,其特征在于,对于属于虚拟机组的任务,其任务数据中还包...

【专利技术属性】
技术研发人员:刘军卫钱岭张志宏孙少陵
申请(专利权)人:中国移动通信集团公司
类型:发明
国别省市:北京,11

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

1