一种用于云计算系统的作业调度方法

文档序号:6638732阅读:220来源:国知局
一种用于云计算系统的作业调度方法
【专利摘要】本发明公开一种用于云计算系统的作业调度方法,方法中采用的系统包括全局作业队列、子作业队列、作业调度器和与子作业队列对应的虚拟机,所述全局作业队列接收到达系统的作业,所述作业调度器将全局作业队列中的作业调度至合适的子作业队列中排队,等待虚拟机执行,所述作业调度方法基于先进先出工作方式,其中,调度规则为:当作业到达全局作业队列时,只有当子作业队列剩余缓存空间容量大于0,或作业最大等待分配时延小于虚拟机正在执行作业的最小剩余执行时间,作业才会等待被调度到子作业队列,否则,该作业将被丢弃。本发明的作业调度方法能提高系统资源利用率,同时节省了作业请求者的时间,提高了云计算系统的服务质量。
【专利说明】—种用于云计算系统的作业调度方法

【技术领域】
[0001]本发明涉及云计算领域,具体涉及一种用于云计算系统的作业调度方法。

【背景技术】
[0002]云计算作为一种新兴的计算模式,具有海量的处理存储能力,且具有高效、虚拟和廉价等特点,因此得到了商业界以及学术界的高度关注。云计算系统可以部署在廉价的普通服务器上,通过网络为用户提供不同的服务,并高效地执行和管理用户提交的各种作业。而作业调度算法是否优良影响着云计算的执行效率,优秀的作业调度算法可以降低作业的调度时间,提高系统的资源利用率,因此云计算的核心问题是怎样达到高效的作业调度和资源分配。
[0003]常见的作业调度算法有三种:先进先出的作业调度算法、Facebook开发的基于保证大作业运行的公平份额的作业调度算法、Yahoo开发的基于容量的计算能力的作业调度算法。这些云计算作业调度方案存在着不足:没有考虑各作业队列剩余缓存空间、作业所能容忍的最大等待分配时延和虚拟机当前执行作业的剩余执行时间,使得作业不能在其所能忍受的等待时间内被分配的情况下,仍然要浪费时间等待。这样,该作业不仅占用了系统资源,降低了系统的资源利用率,还浪费了作业请求者的时间,使得用户体验不好。


【发明内容】

[0004]本发明正是基于上述技术问题,提出了一种用于云计算系统的作业调度方法,提高云计算系统的资源利用率和服务质量,采用的技术方案如下:
一种用于云计算系统的作业调度方法,方法中采用的系统包括全局作业队列、子作业队列、作业调度器和与子作业队列对应的虚拟机,所述全局作业队列接收到达系统的作业,所述作业调度器将全局作业队列中的作业调度至合适的子作业队列中排队,等待虚拟机执行,所述作业调度方法基于先进先出工作方式,其中,调度规则为:当作业到达全局作业队列时,只有当子作业队列剩余缓存空间容量大于0,或作业最大等待分配时延小于虚拟机正在执行作业的最小剩余执行时间,作业才会等待被调度到子作业队列,否则,该作业将被丢弃。
[0005]传统的先进先出调度方法,没有考虑各子作业队列剩余缓存空间容量、作业所能容忍的最大等待分配时延和虚拟机当前执行作业的剩余执行时间,使得作业不能在其所能忍受的最大等待时间内被分配的情况下,仍然要浪费时间等待分配,占用系统资源,降低系统资源利用率,浪费作业请求者的时间。而本发明增加的作业调度规则使得,在各子作业队列剩余缓存空间为0且作业最大等待分配时延小于各虚拟机中正在执行作业的最小剩余执行时间时,该作业不会继续等待被分配,而是直接被丢弃,释放该作业占用的系统资源,提高了系统资源利用率,同时节省了作业请求者的时间。
[0006]作为优选,所述最大等待分配时延不大于作业与该作业相邻下一个作业到达全局作业队列的时间之差。 这样,在该作业相邻下一个作业到达之前,该作业必须被处理,要么被调度,要么被丢弃,这样能避免某一作业长时间占用系统资源,造成其后的作业没有资源可利用。
[0007]作为优选,本发明进一步包括,当作业到达全局作业队列时,读取该作业端到端时延要求,当端到端时延要求能被满足时,该作业才会等待被调度到子作业队列,否则,该作业将被丢弃。
[0008]本发明中,端到端时延与计算机网络中的端到端时延概念及含义相同,也就是作业从全局作业队列传输到子作业队列所需要的时间。当作业的时延要求不能被满足时,即作业的时延要求小于作业从全局作业队列传输到子作业队列所需要的时间时,该作业也不会继续等待被分配,这样就可以进一步释放系统资源,提高资源利用率和服务质量,改善用户体验。
[0009]作为优选,本发明进一步包括,根据作业被丢弃的不同情况向用户返回作业被丢弃的原因,具体为:当子作业队列剩余缓存空间容量为0,且作业最大等待分配时延小于虚拟机中正在执行作业的最小剩余执行时间时,向用户返回“队列满”信息;当作业的端到端时延要求不能被满足时,向用户返回“超时”信息。
[0010]通过向作业请求者返回作业被丢弃的原因,使得用户能实时掌握作业运行情况,并能够根据反馈消息决定接下来的动作,包括重新提交作业或者放弃执行作业,提高了服务质量,改善了用户体验。
[0011]作为优选,本发明进一步包括,计算每个子作业队列的前置作业执行时间之和,将全局作业队列中的作业调度到,前置作业执行时间之和最短的子作业队列中排队。
[0012]某些子作业队列排队的作业较少,但是其中的某些作业却需要很长的执行时间,若忽视这点,直接将作业安排到作业较少的子作业队列中,会导致作业等待时间不合理,作业调度效率低等问题。而本发明通过计算子作业队列的前置作业执行时间之和,即各子作业队列中虚拟机正在运行作业的剩余执行时间与排队作业的执行时间之和。然后将符合被调度规则的作业调度到子作业队列的前置作业执行时间之和最短的子作业队列中,减少了作业的等待时间,提高了作业调度的效率和云计算系统的服务质量。
[0013]具体地,本发明的一种用于云计算系统的作业调度方法包括以下步骤:
51.作业到达全局作业队列;
52.读取该作业的端到端时延要求,分配作业编号,设置该作业能容忍的最大等待时延,估算该作业的执行时间;
53.判断是否有子作业队列剩余缓存空间容量大于0,若是,则执行S4,若否,则执行
S8 ;
54.计算各子作业队列的前置作业执行时间之和;
55.判断该作业是否满足端到端时延要求,若是,则执行S6,若否,则执行S7;
56.该作业进入前置作业执行时间之和最短的子作业队列,结束本次调度;
57.丢弃该作业并发送“超时”信息给作业请求者,结束本次调度;
58.判断最大等待分配时延是否大于虚拟机正在执行作业的最小剩余执行时间:若是,则执行步骤S9,若否,则执行步骤SlO ;
59.该作业等待最小剩余执行时间后,执行步骤S4;
S10.丢弃该作业并发送“队列满”信息给作业请求者,结束本次调度。
[0014]其中,步骤S2中估算作业执行时间的方法如下:
设作业的大小为F,占用的云计算系统资源为C,则该作业的执行时间估计为t,则t满足,其中云计算系统资源C为一个256兆内存的虚拟中央处理器。
[0015]作为优选,所述步骤S2中的作业编号在该作业完成之前是唯一不变的。
[0016]本发明为作业建立一个作业编号,该作业编号负责封装作业和记录信息,在作业期间保证作业编号唯一不变,以便跟踪作业执行状态与进程。
[0017]具体地,所述子作业队列剩余缓存空间容量、各虚拟机中当前执行作业剩余执行时间以及各子作业队列的前置作业执行时间之和是通过作业调度器监控计算的。
[0018]作为优选,本发明中所述全局作业队列的长度满足:所述作业调度器完成全局作业队列所需时间不大于作业与该作业相邻下一个作业到达全局作业队列的时间之差。
[0019]对全局作业队列的长度作这样的限定,可以避免因全局作业队列中等待调度的作业数超过全局作业队列所能容纳的最大作业数而导致的作业流失,降低了作业的阻塞率,提闻了服务质量。
[0020]作为优选,本发明中所述子作业队列为一个或以上,其队列长度满足:虚拟机完成子作业队列所需时间不大于作业与该作业相邻下一个作业到达子作业队列的时间之差。
[0021]对子作业队列的长度作这样的限定,可以避免因子作业队列中等待调度的作业数超过子作业队列所能容纳的最大作业数而导致的作业流失,降低了作业的阻塞率,提高了服务质量。
[0022]本发明有益效果:与现有技术相比,本发明在进行作业调度时考虑了作业所能容忍的最大等待分配时延、子作业队列剩余缓存空间和作业传输的端到端时延,提高了系统资源利用率,节省了作业请求者的时间;向作业请求者返回作业被丢弃原因,使得用户能实时掌握作业运行情况;将作业调度到前置作业执行时间之和最短的子作业队列中排队,减少了作业的等待时间,提高了系统的服务质量。对全局作业队列和子作业队列的长度作合理限定,降低了作业的阻塞率,提高了服务质量。

【专利附图】

【附图说明】
[0023]图1为本发明的调度规则示意图;
图2为本发明的处理流程图。

【具体实施方式】
[0024]下面结合附图和具体实施例对本发明作进一步说明。
[0025]实施例:
如图1所示,一种用于云计算系统的作业调度方法,方法中采用的系统包括全局作业队列、子作业队列、作业调度器和与子作业队列对应的虚拟机,所述全局作业队列接收到达系统的作业,所述作业调度器将全局作业队列中的作业调度至合适的子作业队列中排队,等待虚拟机执行,所述作业调度方法基于先进先出工作方式,其中,调度规则为:当作业到达全局作业队列时,只有当子作业队列剩余缓存空间容量大于0,或作业最大等待分配时延小于虚拟机正在执行作业的最小剩余执行时间,作业才会等待被调度到子作业队列,否则,该作业将被丢弃。
[0026]作为优选,本实施例中,所述最大等待分配时延不大于作业与该作业相邻下一个作业到达全局作业队列的时间之差。
令最大等待分配时延等于作业到达时间与该作业相邻下一个作业到达时间之差,即在该作业相邻下一个作业到达之前,该作业必须被处理,要么被调度,要么被丢弃,这样能避免某一作业长时间占用系统资源,造成其后的作业没有资源可利用。
[0027]作为优选,本实施例进一步包括,当作业到达全局作业队列时,读取该作业端到端时延要求,当端到端时延要求能被满足时,该作业才会等待被调度到子作业队列,否则,该作业将被丢弃。
作为优选,本实施例进一步包括,根据作业被丢弃的不同情况向用户返回作业被丢弃的原因,具体为:当子作业队列剩余缓存空间容量为0,且作业最大等待分配时延小于虚拟机中正在执行作业的最小剩余执行时间时,向用户返回“队列满”信息;当作业的端到端时延要求不能被满足时,向用户返回“超时”信息。
[0028]作为优选,本实施例进一步包括,计算每个子作业队列的前置作业执行时间之和,将全局作业队列中的作业调度到,前置作业执行时间之和最短的子作业队列中排队。
[0029]将作业调度到前置作业执行时间之和最短的子作业队列中排队,减少了作业的等待时间,提高了调度效率,使得系统资源得到更合理的利用。
[0030]如图2所示,本实施例的一种用于云计算系统的作业调度方法具体包括以下步骤:
51.作业到达全局作业队列;
52.读取该作业的端到端时延要求,分配作业编号,设置该作业能容忍的最大等待时延,估算该作业的执行时间;
53.判断是否有子作业队列剩余缓存空间容量大于0,若是,则执行S4,若否,则执行
S8 ;
54.计算各子作业队列的前置作业执行时间之和;
55.判断该作业是否满足端到端时延要求,若是,则执行S6,若否,则执行S7;
56.该作业进入前置作业执行时间之和最短的子作业队列,结束本次调度;
57.丢弃该作业并发送“超时”信息给作业请求者,结束本次调度;
58.判断最大等待分配时延是否大于虚拟机正在执行作业的最小剩余执行时间:若是,则执行步骤S9,若否,则执行步骤SlO ;
59.该作业等待最小剩余执行时间后,执行步骤S4;
S10.丢弃该作业并发送“队列满”信息给作业请求者,结束本次调度。
[0031]其中,步骤S2中估算作业执行时间的方法如下:
设作业的大小为F,占用的云计算系统资源为C,则该作业的执行时间估计为t,则t满足,其中云计算系统资源C为一个256兆内存的虚拟中央处理器。
[0032]作为优选,所述步骤S2中的作业编号在该作业完成之前是唯一不变的。
[0033]具体地,本实施例中,所述子作业队列剩余缓存空间容量、各虚拟机中当前执行作业剩余执行时间以及各子作业队列的前置作业执行时间之和是通过作业调度器监控计算的。
[0034]作为优选,本实施例中所述全局作业队列的长度满足:所述作业调度器完成全局作业队列所需时间不大作业与该作业相邻下一个作业到达全局作业队列的时间之差。
[0035]作为优选,本实施例中所述子作业队列为一个或以上,其队列长度满足:虚拟机完成子作业队列所需时间不大于作业与该作业相邻下一个作业到达子作业队列的时间之差。
【权利要求】
1.一种用于云计算系统的作业调度方法,方法中采用的系统包括全局作业队列、子作业队列、作业调度器和与子作业队列对应的虚拟机,所述全局作业队列接收到达系统的作业,所述作业调度器将全局作业队列中的作业调度至合适的子作业队列中排队,等待虚拟机执行,所述作业调度方法基于先进先出工作方式,其特征在于,调度规则为:当作业到达全局作业队列时,只有当子作业队列剩余缓存空间容量大于O,或作业最大等待分配时延小于虚拟机正在执行作业的最小剩余执行时间,作业才会等待被调度到子作业队列,否则,该作业将被丢弃。
2.根据权利要求1所述的一种用于云计算系统的作业调度方法,其特征在于,所述最大等待分配时延不大于作业与该作业相邻下一个作业到达全局作业队列的时间之差。
3.根据权利要求1或2所述的一种用于云计算系统的作业调度方法,其特征在于,进一步包括,当作业到达全局作业队列时,读取该作业端到端时延要求,当端到端时延要求能被满足时,该作业才会等待被调度到子作业队列,否则,该作业将被丢弃。
4.根据权利要求3所述的一种用于云计算系统的作业调度方法,其特征在于,进一步包括,根据作业被丢弃的不同情况向用户返回作业被丢弃的原因,具体为:当子作业队列剩余缓存空间容量为O,且作业最大等待分配时延小于虚拟机中正在执行作业的最小剩余执行时间时,向用户返回“队列满”信息;当作业的端到端时延要求不能被满足时,向用户返回“超时”信息。
5.根据权利要求4所述的一种用于云计算系统的作业调度方法,其特征在于,进一步包括,计算每个子作业队列的前置作业执行时间之和,将全局作业队列中的作业调度到,前置作业执行时间之和最短的子作业队列中排队。
6.根据权利要求5所述的一种用于云计算系统的作业调度方法,其特征在于,包括以下步骤: 51.作业到达全局作业队列; 52.读取该作业的端到端时延要求,分配作业编号,设置该作业能容忍的最大等待时延,估算该作业的执行时间; 53.判断是否有子作业队列剩余缓存空间容量大于O,若是,则执行S4,若否,则执行S8 ; 54.计算各子作业队列的前置作业执行时间之和; 55.判断该作业是否满足端到端时延要求,若是,则执行S6,若否,则执行S7; 56.该作业进入前置作业执行时间之和最短的子作业队列,结束本次调度; 57.丢弃该作业并发送“超时”信息给作业请求者,结束本次调度; 58.判断最大等待分配时延是否大于虚拟机正在执行作业的最小剩余执行时间:若是,则执行步骤S9,若否,则执行步骤SlO ; 59.该作业等待最小剩余执行时间后,执行步骤S4; S10.丢弃该作业并发送“队列满”信息给作业请求者,结束本次调度。
7.根据权利要求6所述的一种用于云计算系统的作业调度方法,其特征在于,所述步骤S2中的作业编号在该作业完成之前是唯一不变的。
8.根据权利要求6所述的一种用于云计算系统的作业调度方法,其特征在于,所述子作业队列剩余缓存空间容量、各虚拟机中当前执行作业剩余执行时间以及各子作业队列的前置作业执行时间之和是通过作业调度器监控计算的。
9.根据权利要求6所述的一种用于云计算系统的作业调度方法,其特征在于,所述全局作业队列长度满足:所述作业调度器完成全局作业队列所需时间不大于作业与该作业相邻下一个作业到达全局作业队列的时间之差。
10.根据权利要求8或9所述的一种用于云计算系统的作业调度方法,其特征在于,所述子作业队列为一个或以上,其队列长度满足:虚拟机完成子作业队列所需时间不大于作业与该作业相邻下一个作业到达子作业队列的时间之差。
【文档编号】G06F9/455GK104461722SQ201410774633
【公开日】2015年3月25日 申请日期:2014年12月16日 优先权日:2014年12月16日
【发明者】彭志平, 崔德龙 申请人:广东石油化工学院
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1