任务调度的方法、系统和设备技术方案

技术编号:2871111 阅读:238 留言:0更新日期:2012-04-11 18:40
一种在一个多级计算系统内调度需处理的请求的方法,所述计算系统每个级都具有至少一个队列,每个队列都具有至少一个与之关联的处理功能,所述方法包括下列步骤:    a.将请求缓存在第一级的队列内;    b.与同第一级相邻的其他级交换流量信息;    c.得出请求的分类值;以及    d.根据所得出的值调度请求。(*该技术在2023年保护过期,可自由使用*)

【技术实现步骤摘要】

本专利技术涉及计算系统内的任务调度。具体地说,本专利技术涉及可以减少计算系统内请求丢弃量和贯彻服务质量(QoS)和服务等级协定(SLA)的任务调度的方法、系统和设备
技术介绍
计算系统可以定义为一个具有存储和处理能力的执行各种任务和处理各种请求的系统。这样的请求的范围可以是从诸如通过一个网络访问一个数据库之类的简单的数据请求到诸如运行一个应用,接着又需要一些数据(在数据库中的)来处理原始请求的较为复杂的请求。任何接收请求(或任务)予以处理的计算系统在它的能力上都有一定限制。它同时可处理的请求的数量有一个上限。这样的限制可以是由于计算系统的结构和能力引起的。因此,诸如CPU速度、存储器容量、系统所布置的网络的连接速度之类的参数限制了系统可以处置的请求的数目。因此,如果请求数超过这个限制,将有某些请求得不到完全处理。会有一些请求将在到达计算系统前被丢弃,这些请求根本不会被计算系统接收。此外,会有一些请求被计算系统接收,但是这些请求将只得到部分处理就被异常中止了。这通常是由于存储器不足或网络连接超时而引起的。这样的系统的一个例子可以是基于因特网的在线股票交易业务。这种业务根据用户请求为用户提供一些具体股票的价格的信息。然而,随着这样的在线因特网业务的用户越来越多,在线因特网业务的服务器同时处理的大量用户请求常常成为难以管理的。例如,提供篮球专门信息的在线因特网业务的服务器在国家级篮球锦标赛的决赛期间对于用户的请求过载。确实,由于请求过载会有一些用户请求将只得到部分处理,而有一些请求根本得不到处理。这些没有完全处理或者根本没有处理的请求也被认为是丢弃的请求。在完全处理请求本身是关键性的任何事务未得到处理的情况下,就认为请求被丢弃。假设一个请求A的部分处理产生的一个请求B对于请求A的完全处理是关键性的。然而,如果请求B被丢弃(例如,由于加到处理请求B的部件上的请求过载),请求A就不能得到完全处理。在这种情况下,也认为请求A是被丢弃了。因此,概括地说,一个请求被认为是丢弃了,如果(i)这个请求在被系统或一个系统部件部分处理或完全处理前,由于这个部件上请求过载而不予考虑任何将来的处理(即完全丢弃);(ii)任何对于完全处理这个请求是关键性的事务被异常中止;(iii)处理原来的请求产生的另一个请求被丢弃,该另一个请求得到完全处理对于完全处理原来的请求是关键性的。一种解决由于过载而请求被丢弃的问题的方法是使用多个完全一样的系统(即多个同样的服务器)来处理进入的请求。因此,可以用一个服务器群集而不是一个服务器来处理请求。在这群集前面用一个负荷平衡器来接收请求和确保在这些同样的服务器之间公平地分配请求。负荷平衡器是硬件装置或软件程序,在群集内各个部件之间均匀地分配用户请求,以防止部件过载。例如,可以用一个负荷平衡器在若干同样的服务器(诸如http 1服务器)之间分配用户请求。这种分配可以基于预先规定的准则,诸如每个部件的工作负荷、请求内容类型(视频或文本)、部件地理位置和预期QoS和SLA之类。此外,可以预先规定如稍后将要讨论的在一些同样的部件之间分配这些请求的方法/技术。由于运用多个同样的服务器,就会减少每个服务器处理的请求的数量。从而就减小了一个服务器过载的可能性。然而,在某些情况下请求可以多到为了满足要求要用多到不切实际的服务器。随着网络传输速度的提高和用户/客户的增多,通过网络传输请求比一个部件处理请求的速度和/或一个负荷平衡器转发请求的速度快得多。这导致一些请求累积在部件/负荷平衡器处,从而使部件/负荷平衡器过载。这引起一些请求在部件/负荷平衡器处被丢弃。在一些其他情况下,一个部件开始处理一个请求,但是由于处在高负荷的状态,在一个预定周期内不能完成处理。这也可以引起请求丢弃。请求丢弃有害地影响了计算系统的性能。首先,浪费了资源,处理和转发请求的负荷平衡器的资源和/或部分处理请求所用的资源。这导致降低了资源有效利用率。第二,一个请求一得到处理就可能导致在一些部件(处理这个请求的部件)内状态改变。如果请求在一个中间部件被丢弃,系统就可能必需转回到它最近的一致状态。也就是说,整个系统必需转返到开始处理这个丢弃的请求之前所处的状态。每次转返都会使系统处理请求的响应时间恶化、降低系统的吞吐量,从而也浪费了系统的资源。第三,浪费系统资源可能导致丢弃其他请求,这些请求如果有充足的系统资源可用可能已经得到处理。第四,由于与以上所陈述的相同的原因,一些其他请求会以较低的服务质量处理,否则的话这些请求就可能以较高的服务质量处理。第五,部分处理一个以后被丢弃的请求所浪费的时间增加了对丢弃的或失败的请求的用户的响应时间。这可能有碍于为用户提供的服务质量(QoS),也可能导致违反用户与网络之间的服务等级协定(SLA)。最后,由于处理请求的响应时间较长,用户不满意增加。考虑到上述请求丢弃的缺点,势在必行的是减少请求丢弃量。有若干方法和技术用负荷平衡器来减少请求丢弃。一种由一个负荷平衡器执行用户请求分配的典型方法为轮转域名服务器(RR-DNS)方法。在这种方法中,请求按循环一个接一个发送给多个服务器(也就是说按轮转方式)。有一些其他负荷平衡解决方案,基于在一个群集内的各个同样的部件之间的信息流的构思,以便为一个特定的用户请求确定目标部件。这信息可以是与群集内每个正由负荷平衡器平衡负荷的部件的负荷程度有关的信息。在美国专利No.5938732“网络业务的负荷平衡和故障转移”(“Loadbalancing and fail over of network services”)揭示了一种这样的解决方案。它涉及维护在一个具有一些部件的群集内的通信和协调这些部件之间的合作。这样保证了由这个群集提供的服务即使在提供该服务的一个或多个部件有时诸如由于故障而无法使用时仍保持可提供服务。每个处理单元周期性地向群集内所有的其他处理单元发送一个有助于维护通信的控制信号。这个消息包括发送部件的状态以及有关所了解的群集内其他部件的状态的数据。Myongsu Choe和Carl Tropper在研究报告“时间翘曲的流量控制和动态负荷平衡”(“Flow Control and Dynamic Load Balancing in TimeWarp”)提出了另一种解决方案。它揭示了一种综合流量控制和动态负荷平衡的算法。流量控制由一个群集(具有一些处理器)内的处理器用来在它们之间均分或分配负荷。流量控制在这种情况下在这些目标部件之间进行。Ossama Othman、Carlos O′Ryan和Douglas C.Schmidt的研究报告“自适应CORBA负荷平衡服务的设计和性能”(“The Design and Performanceof an Adaptive CORBA Load Balancing Service”)也提出了一种解决方案。该报告,在它的前景工作中,提出需要在各负荷平衡器之间采用流量控制,从一个给定的群集(具有一些部件)中确定目标部件。上述所有的解决方案都采用了在一个群集(具有一些同样的部件)内的各个部件之间的信息交流来确定要处理请求的目标部件。然而,其中还没有一个考虑在要以高请求速率工作的系统内请求丢弃的问题。也要处理一些在完成前最终被丢弃本文档来自技高网...

【技术保护点】

【技术特征摘要】

【专利技术属性】
技术研发人员:A·康杜
申请(专利权)人:国际商业机器公司
类型:发明
国别省市:

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

1