[发明专利]一种云计算环境下面向并行应用的动态时间片调度方法及系统有效
申请号: | 201510226301.0 | 申请日: | 2015-05-06 |
公开(公告)号: | CN104866370B | 公开(公告)日: | 2018-02-23 |
发明(设计)人: | 吴松;金海;谢振江;陈海宝;赵新宇 | 申请(专利权)人: | 华中科技大学 |
主分类号: | G06F9/455 | 分类号: | G06F9/455;G06F9/50;G06F9/38 |
代理公司: | 华中科技大学专利中心42201 | 代理人: | 廖盈春 |
地址: | 430074 湖北*** | 国省代码: | 湖北;42 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 计算 环境 面向 并行 应用 动态 时间 调度 方法 系统 | ||
技术领域
本发明属于云计算技术领域,更具体地,涉及一种云计算环境下面向并行应用的动态时间片调度方法及系统。
背景技术
随着云计算技术的普及,越来越多的学术机构和商业机构把云计算提供的资源作为本地资源的替代品,越来越多的应用运行在云环境下,包括并行应用。在并行应用中,为了获取高性能,通常使用自旋锁来做进程同步。对于自旋锁,当其被某个进程或线程占有时,其他等待进程或线程会处于忙等待状态,直到锁持有者进程释放自旋锁。在虚拟化环境下,由于自旋锁的特性,会带来锁持有者被抢占的问题,例如,当一个锁持有者进程在虚拟化环境下因为虚拟处理器(Virtual CPU,VCPU)调度切换被抢占了,而后其他的锁等待着被调度时,就会处于忙等待状态,从而造成很高的自旋锁延迟和大量的处理器(CPU)时间的浪费。因此,锁持有者被抢占导致并行应用在虚拟化环境下有很显著的性能损失。
针对锁持有者被抢占带来的并行应用性能损失的问题,现有的方法主要包括抢占式的协同调度(Co-scheduling)方法和概率性的协同调度(Balance)方法;Co-scheduling方法是把同一个虚拟机的VCPU同时调度到PCPU上运行,这样能尽可能的提升并行应用的同步效率,优化其性能;但是,由于Co-scheduling进行同时调度的时候,不可避免的会抢占其他虚拟机的VCPU,这会对延迟敏感型的应用造成性能损失;而云环境下,应用种类很丰富,Co-scheduling的这种特性导致其在真实的云环境下不够实用。Balance调度方法是把运行并行应用的虚拟机的VCPU放到不同的物理处理器(Physical CPU,PCPU)运行队列里面,这样能从增大该虚拟机所有VCPU被同时调度的概率,从而提升并行应用性能,然而,在PCPU运行队列的VCPU个数较多时,Balance调度方法对并行应用性能的提升有限。
发明内容
针对现有技术的以上缺陷或改进需求,本发明提供了一种云计算环境下面向并行应用的动态时间片调度方法及系统,其目的在于基于虚拟机的自旋锁延迟,动态的调整虚拟机的调度时间片,由此解决云计算环境下锁持有者被抢占导致的自旋锁延迟显著增高的问题。
为实现上述目的,按照本发明的一个方面,提供了一种云计算环境下面向并行应用的动态时间片调度方法,具体如下:
(1)自旋锁延迟采样:基于探针技术,在运行并行应用的虚拟机的自旋锁中插入性能探测点,对虚拟机的自旋锁延迟进行采样,输出运行并行应用的虚拟机的自旋锁延迟的采样值;其中,探针技术是在代码中插入探测点来获取所需要的数据,所述性能探测点用于获取系统当前时间;
(2)虚拟机与虚拟机监视器通信:基于超级调用(hypercall)机制,建立虚拟机与虚拟机监视器之间的通信通道,并把每个虚拟机的自旋锁延迟的采样值传递给虚拟机监视器;其中,超级调用(hypercall)机制是指由虚拟机通过软中断来执行特权指令的机制;
(3)自旋锁延迟统计:由虚拟机监视器根据各虚拟机的自旋锁延迟采样值,获取一个调度周期内各虚拟机自旋锁延迟的平均值;
(4)根据虚拟机前N个调度周期内的自旋锁延迟的平均值,识别自旋锁延迟变化趋势,若所述平均值呈递增趋势,则表明自旋锁延迟增加;若平均值呈递减趋势,则表明自旋锁延迟减少;
根据自旋锁延迟变化趋势动态调整虚拟机的调度时间片;在各运行并行应用的虚拟机的调度时间片中取一个时间片,将其作为所有运行并行应用的虚拟机的统一调度时间片;其中,N大于等于3。
优选的,步骤(1)所述的自旋锁延迟采样具体如下:
(1.1)当虚拟机运行并行应用时,判断是否发生线程忙等待,若是,记录当前时间点T1;若否,则结束自旋锁延迟采样;
(1.2)当忙等待结束且获取到自旋锁,记录当前时间点T2;
(1.3)根据步骤(1.1)与(1.2)中获取的时间点,获得自旋锁延迟值为T2-T1。
优选的,步骤(4)所述的获取虚拟机统一调度时间片的过程具体如下:
(4.1)识别自旋锁延迟的变化趋势,并根据自旋锁延迟的变化趋势动态调整调度时间片:当自旋锁延迟增加时减少虚拟机的调度时间片,当自旋锁延迟减少时增加虚拟机的调度时间片;
(4.2)获取所有运行并行应用的虚拟机的调度时间片;在所有并行应用虚拟机的调度时间片的值中取最小值,将该最小值作为虚拟机的统一调度时间片。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于华中科技大学,未经华中科技大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201510226301.0/2.html,转载请声明来源钻瓜专利网。
- 上一篇:分布式任务处理系统及方法
- 下一篇:一种Makefile文件生成方法和装置