[发明专利]一种基于动态PLE技术的虚拟机协同调度方法有效
申请号: | 201410029589.8 | 申请日: | 2014-01-22 |
公开(公告)号: | CN103744728B | 公开(公告)日: | 2017-02-08 |
发明(设计)人: | 管海兵;马汝辉;李健;黄彬弟;周凡夫 | 申请(专利权)人: | 上海交通大学 |
主分类号: | G06F9/48 | 分类号: | G06F9/48;G06F9/455 |
代理公司: | 上海旭诚知识产权代理有限公司31220 | 代理人: | 郑立 |
地址: | 200240 *** | 国省代码: | 上海;31 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 动态 ple 技术 虚拟机 协同 调度 方法 | ||
技术领域
本发明涉及计算机虚拟机性能监控和虚拟机调度领域,尤其涉及一种基于动态PLE技术的虚拟机协同调度方法。
背景技术
虚拟化技术抽象计算机的物理资源,向上呈现虚拟硬件接口,使得多个操作系统能够在同一物理设备上运行。利用虚拟化技术,将原本运行于多台物理设备的服务整合到同一台物理服务器上,提高物理资源利用率的同时减少了企业在IT基础设施上的管理维护成本。另一方面通过虚拟化技术对物理资源的管理,能够对资源进行动态配置,对于各种业务适应性更强。同时虚拟化技术能够对虚拟服务器进行监控和隔离,确保虚拟服务器的正常运行以及虚拟服务器之间能够相互独立。此外,虚拟服务器能够更快捷的进行复制转移,提高可用性以及灾难恢复速度。因此,虚拟化技术成为云计算以及数据中心不可或缺的一部分。
虚拟机监控器(Virtual Machine Monitor,VMM)是目前主流的虚拟化技术,介于硬件与传统操作系统之间,负责管理计算机的物理资源,包括内存、CPU以及I/O设备等硬件资源,并虚拟出硬件接口供上层使用,使得多个操作系统能够在同一个物理设备上运行。
同时为了能够更好地提升虚拟化服务器的性能,硬件上也添加了对虚拟化的支持。Intel的VT系列虚拟化技术,提供了对虚拟化技术的支持,使得虚拟机的性能得到显著提升。
虚拟机监控器的引入,使得很多在传统操作系统中已经解决的问题出现了新的变化,同时也使得传统操作系统中现有的一些机制出现新的问题。在传统的操作系统中自旋锁(Spin-Lock)用于解决CPU之间对于共享资源的竞争。当多个CPU需要获取同一个自旋锁时,只有一个CPU可以持有该锁,其它的CPU则一直循环检测自旋锁是否被释放。传统的操作系统中持有自旋锁的CPU在非常短的时间内会将锁释放,这样等待自旋锁的CPU循环检测的时间并不会很长。但在虚拟化环境中,虚拟机中持有自旋锁的VCPU可能被虚拟机监控器调度出物理CPU,使得该虚拟机中等待该自旋锁的其它VCPU一直处于循环检测自旋锁的状态,该问题被称为LHP(Lock Holder Preemption,自旋锁持有者被抢占)问题,会导致虚拟机性能的下降。
为了解决上述LHP问题,现有的技术方案包括虚拟机中VCPU的协同调度和VCPU的忙等检测。虚拟机中VCPU的协同调度指的是将虚拟机中的一组VCPU(可以是虚拟机中全部VCPU也可以是部分VCPU)同时调度进物理CPU,这样可以有效减少LHP现象的出现,但是这种方法会造成CPU资源的碎片化以及系统延迟的不确定性增加等问题。VCPU的忙等检测,指的是在检测到VCPU忙等时将VCPU调度出物理CPU,主要分为基于虚拟机的VCPU忙等检测和基于硬件支持的VCPU忙等检测。基于虚拟机的VCPU忙等检测需要对虚拟机操作系统进行修改,在虚拟机中出现VCPU忙等时通知VMM,这种方法因为需要修改虚拟机操作系统,适用范围受限制。基于硬件支持的VCPU忙等检测需要设置虚拟机控制结构中的忙等检测参数,这些参数在计算机处于不同负载下的最优值是需要变化的。将虚拟机中VCPU的协同调度与参数动态调整的VCPU忙等检测相结合可以降低协同调度带来的负面影响,同时提高虚拟机的性能。
当前基于硬件支持的VCPU忙等检测主要是PLE(Pause Loop Exit)技术,其中忙等检测参数是PLE_GAP和PLE_WINDOW。在VCPU进行忙等时,会执行Pause指令,若两个连续的Pause指令在PLE_GAP指定的时间范围内,则可以认为该VCPU是由于等待同一个自旋锁而导致的忙等,当这种连续的Pause指令超过PLE_WINDOW指定的时间范围时,则认为该VCPU忙等时间过长,此时PLE向VMM层的调度模块提供触发信息,调度模块将该VCPU调度出物理CPU,之后从物理CPU的运行队列中选择下一个VCPU进入该物理CPU中运行,触发执行过程如图1所示。
现有PLE技术的运用中有将参数固定不变的静态PLE技术,也有根据计算机在不同负载时动态变化参数以取其最优值的动态PLE技术。
在现有的技术方案中,对VPN的协同调度和动态PLE技术只单独使用其中之一,前者仅仅基于静态PLE技术,其利用PLE的触发信息对虚拟机中的VCPU进行协同调度,并没有考虑在不同负载情况下PLE参数的调整。后者对PLE参数在不同负载情况下进行动态调整,并没有利用VCPU的协同调度减少LHP的发生。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于上海交通大学,未经上海交通大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201410029589.8/2.html,转载请声明来源钻瓜专利网。