[发明专利]基于虚拟机当前工作性质以及任务负载的虚拟机调度算法在审
申请号: | 201510058421.4 | 申请日: | 2015-02-04 |
公开(公告)号: | CN104598298A | 公开(公告)日: | 2015-05-06 |
发明(设计)人: | 管海兵;马汝辉;李健;毛昊翔 | 申请(专利权)人: | 上海交通大学 |
主分类号: | G06F9/455 | 分类号: | G06F9/455;G06F9/50 |
代理公司: | 上海旭诚知识产权代理有限公司 31220 | 代理人: | 郑立 |
地址: | 200240 *** | 国省代码: | 上海;31 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 基于 虚拟机 当前 工作 性质 以及 任务 负载 调度 算法 | ||
技术领域
本发明涉及系统虚拟化、虚拟机中断检测、虚拟机CPU使用率检测和虚拟机调度器设计领域。具体地,涉及基于虚拟机当前工作性质以及任务负载的虚拟机调度算法,用于解决由虚拟机调度器设计缺陷引起的I/O响应延迟、无法动态适应虚拟机负载变化以及I/O性能较低的问题。
背景技术
虚拟化技术已经以各种不同的形式存在了50多年。抽象的说,虚拟化是各种可用资源的逻辑表示,可以不受物理条件的限制。具体一点就是,虚拟化技术在系统中添加了一层虚拟化层,能够把下层的物理资源抽象成虚拟资源,供上层的应用使用。它既可以从单个物理资源中划分出多个虚拟资源,也可以把多个物理资源整合成一个虚拟资源。
虚拟机监控器(Virtual Machine Monitor,VMM)是虚拟化技术中最重要的一部分。它处于硬件层和虚拟机之间,运行在最高的特权级别。它的主要功能是抽象底层硬件资源,使之成为虚拟资源,并提供给上层创建的虚拟机使用。虚拟机监控器的主要功能包括虚拟环境的管理和物理资源的管理。
目前业界主流的虚拟机监控器包括Xen、KVM、VirtualBox、Hyper-V、VMware等等。其中Xen作为主流的开源虚拟机监控器,在实际应用以及学术研究中占有很重要的地位。Xen默认的调度算法为信用值调度算法(Credit Scheduler)。信用值调度算法把分配的时间视为信用值,在每个信用值分配周期会为所有VCPU分配信用值,VCPU每运行一段时间就会扣除与其运行时间相对应的信用值,信用值小于0后在这个调度周期内便不再运行。
由于虚拟机监控器的引入,原本在传统操作系统中已经解决的问题会出现新的变化,同时还会出现一些传统操作系统中不会出现的问题。其中一个很重要的问题就是I/O响应延迟的问题。在传统操作系统中,当一个I/O请求来临时,操作系统会感知到这个请求,并调度他的接收者,使其抢占当前运行的进程,处理I/O请求,从而使得I/O请求的延迟变小。然而在虚拟化环境中,所有的I/O请求会由虚拟机监控器接收,然后转发给对应的虚拟机,操作系统无法感知到具体哪个虚拟机是I/O请求的接收者,因此无法进行抢占。当几个虚拟机共享一个物理CPU的时候,一个虚拟机就不得不等待其他的虚拟机使用完分配给他们的时间之后才能处理自己的I/O请求。当有很多虚拟机共享同一个物理CPU的时候,延迟会变得非常高,这么高的延迟对于一个I/O密集型的虚拟机来说是不可接受的。
传统的调度器把调度的公平性放在第一位,把I/O任务和CPU任务等同对待,会导致I/O任务效率低下。为了解决I/O效率低下的问题,学术界提出了多种优化方法,将I/O任务与CPU任务区别对待,但是比较极端的把虚拟机分成两类:纯I/O操作和纯CPU计算,并没有考虑分配给I/O请求足够的CPU时间去处理,没有考虑混合型的虚拟机,因此也会影响I/O任务的效率。另一方面,以往的部分研究中虚拟机的类型只能在系统启动时手动指定,一个I/O密集型的虚拟机在系统运行时也可能会改变成为CPU密集型,当一个没有被标注为I/O密集型的虚拟机接收到大量I/O请求时,调度器无法改变调度时间片,使得I/O响应的延迟无法降低。因此这些方法在实际的系统当中有局限性。
综上所述,传统的调度器中存在着I/O响应延迟较大的问题,现有的研究提出的方法虽然能在一定程度上减少延迟,但是不能适应虚拟机负载动态的变化并且没有考虑为I/O请求提供充足的时间进行处理,同样也会影响I/O请求的性能。因此,本领域的技术人员致力于开发一种基于虚拟机当前工作性质以及任务负载的虚拟机调度算法,解决这一问题。
发明内容
有鉴于现有技术的上述缺陷,本发明所要解决的技术问题是提供基于虚拟机当前工作性质以及任务负载的虚拟机调度算法,在保证I/O请求能够被及时响应的同时,又有足够的CPU时间用于处理I/O请求,权衡时间片的大小,使I/O性能最大化,在提升I/O性能的同时,又对CPU密集型的虚拟机带来最少的额外开销。
为实现上述目的,本发明提供了基于虚拟机当前工作性质以及任务负载的虚拟机调度算法,该算法包含了中断监控模块,CPU监控模块和调度器模块这三个模块:
中断监控模块运行在虚拟机监控器中,从事件通道获取虚拟机接收的中断请求。根据中断请求携带的信息,识别出包括domainU发送请求,domainU接收请求,domain0发送回复,domain0接收回复等操作在内的I/O操作,监控所有虚拟机的中断频率,用于判断各个虚拟机的工作性质是CPU密集型还是I/O密集型。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于上海交通大学;,未经上海交通大学;许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201510058421.4/2.html,转载请声明来源钻瓜专利网。