当前位置: 首页 > 专利查询>BEA系统公司专利>正文

用于具有自调整线程模型的应用服务器的系统和方法技术方案

技术编号:2835489 阅读:194 留言:0更新日期:2012-04-11 18:40
一种用于具有自调整线程模型的应用服务器的系统和方法。使用服务器队列作为优先级方案,其中包括多个与所接收的请求相关联的条目,并且其允许条目表达优先级或份额值,而不是仅仅线程数目。仍然保留这样的灵活性,即在可能希望其的情况下,以原始数目表达线程,或者表达对要使得可用的线程数目的约束。

【技术实现步骤摘要】
【国外来华专利技术】
本专利技术一般涉及应用服务器和消息传递系统,特别涉及一种。
技术介绍
在可能存在几百或几千个并发用户(客户端)的典型应用服务器或网络服务器环境中,这些客户端中的每个可以将请求发送到服务器。图1示出了这种环境的示例。现代服务器100可以具有多个处理器以及服务于这些处理器的多个线程102。线程从客户端104、106、108获得请求110、112、114,并且以类似于队列的方式将它们施加到处理器。实际所使用的线程数目对服务器性能及其处理大量用户的能力具有巨大影响。然而,算出线程的最优数目是复杂的处理。一种对此问题的解决方案是增加甚至更多的线程,从而线程数大大地超过处理器数。这确保了几乎立即将请求供应到线程中,但是不确保这些请求迅速地被处理器处理。一种较新的替代方案是创建线程池,其中运行灵活数目的线程。然后,可以由管理员微调实际的线程数目,以便为具体的运行时间环境提供最佳性能。然而,该处理严重地取决于管理员的技术,因为它在很大程度上是环境相关的并且是静态的,并且大多数仅仅用于测试平台和营销的目的。在现实生活的情形中,环境如此多变以致于该静态方案无法令人满意。因此,需要一种用于允许服务器基于工作负载的目标预测而自动地确定和实现最优数目的并发线程的装置。由于应用服务器所处位置(在操作系统之上)的限制,因此不能将该线程控制嵌入到操作系统内,而是必须存在于更高级别。因此,应当存在一种用于控制在应用服务器中的线程的数目和供应它们的队列的装置。
技术实现思路
根据本专利技术的实施例,提供了一种。根据实施例,使用服务器队列作为优先级方案,其中包括多个与所接收的请求相关联的条目,并且其允许条目表达比仅仅线程数目更加自然和更接近于商业用户的优先级。仍然保留灵活性,以在可能希望其的情况下(例如,如果存在除非使得特定数目的线程可用、否则将会死锁的巳知调用序列)以原始数目表达线程,或者基于全系统范围或工作负载而表达对要使得可用的线程数目的约束。根据实施例,可以将优先级指定为“份额”,其是反映将接收请求的实体之间的相称优先级的抽象概念。由于总数是任意的,并且可能存在大于100的份额,因此尽管份额与百分比线程使用类似,但它们并不相同。份额确定分配给每个实体的线程使用(按照线程数目)。然后,系统(或运行在其上的算法)确保在长期时间内,将根据这些份额分配线程的使用(按照线程时间)。例如使用已经被分配的时间或线程分钟数的两倍的任何实体将受到惩罚,以使相对使用比例回到平衡。根据实施例,在运行时间期间,该算法还可以用来调整线程池的大小,然后在该池内分配线程。根据实施例,维护优先级队列。每个请求实体,例如客户端,可以发布进入队列、并且根据相对份额而被分隔开的请求。从而,例如,与用尽了其分配或者具有基于较低时间的分配或份额的另一实体相比,如果该实体没有超过其分配,则可以将其请求放置在队列中的相对高处,并且将立即开始获得线程。根据实施例,对于最大线程约束,系统可以维护独立的队列,用于将请求保存在优先级队列中、以及最大线程约束队列中。当清除了最大线程约束队列时,将允许执行优先级队列中的任何类似项目(即,用于相同约束的某项目)。根据实施例,线程池的大小调整可以缩减到递增或递减一个现有池。这是基于周期性地,例如每一秒或两秒执行的。自调整线程模型的总体结果是服务器的盒外(out-of-the box)性能的大幅度提高。然后,还可以为了适应特定需要而定制线程特征。该特性还允许服务器客户在设置其系统时具有更大的灵活性,并且向他们提供方法来针对具体的商业逻辑或客户需求集等来区分其线程模型的优先级。附图说明图1示出了多个客户端使用线程访问服务器的环境的图解。图2示出了根据本专利技术实施例的、多个客户端使用线程和优先级队列来访问服务器的环境的图解。图3示出了根据本专利技术实施例的用于使用线程访问服务器的处理的流程图。具体实施例方式目前,应用服务器客户定义新的线程池并配置其大小,以避免死锁并提供不同的服务。这是十分困难的处理。有才能的软件管理团队可能花费几天来仔细考虑用于最优性能的配置。根据本专利技术的实施例,自调整服务器动态地调整线程数,以避免死锁并且实现受到并发约束的最优吞吐量。它还满足用于不同服务的目标。这些目标被表述为响应时间目标、份额和优先级。根据实施例,本系统解决与工作负载管理、执行队列清除、线程计数调整和过载保护相关的要求。可以将服务器中的多个执行队列简化成单个基于优先级的队列。本系统实现基于优先级的工作调度方案,其中在队列中,高优先级工作花费较少的时间。调度考虑了资源约束。主要的焦点是使调度模型可伸缩,并且使管理员能够指定工作负载管理规则。根据本专利技术的实施例,提供了一种。根据实施例,使用服务器队列作为优先级方案,其中包括多个与所接收的请求相关联的条目,并且其允许这些条目表达比仅仅线程数目更加自然和更接近于商业用户的优先级。仍然保留这样的灵活性,以在可能希望其的情况下(例如,如果存在除非使得特定数目的线程可用否则将会死锁的已知调用序列)以原始数目表达线程,或者基于全系统范围或工作负载而表达对要使得可用的线程数目的约束。根据实施例,可以将优先级指定为“份额”,反映将接收请求的实体之间的相称的优先级的抽象概念。由于总数是任意的,并且可能存在多于100个份额,因此尽管份额与百分比线程使用类似,但并不相同。份额确定分配给每个实体的线程使用(按照线程数目)。然后,系统(或运行在其上的算法)确保在长期时间内,将根据这些份额分配线程的使用(按照线程时间)。例如,使用了已经被分配的时间或线程分钟数的两倍的任何实体将受到惩罚,以使相对使用比例回到平衡。根据实施例,在运行时间期间,该算法还可以用来调整线程池的大小,然后在该池内分配线程。根据实施例,维护优先级队列。每个请求实体例如客户端,可以发布请求,该请求进入队列,并且根据相对份额而被分隔开。从而,例如,与用尽了其分配或者具有较低的基于时间的分配或份额的另一实体相比,如果实体没有超过其分配,则可以将其请求放置在队列中的相对高处,并且将立即开始获得线程。根据实施例,对于最大线程约束,系统可以维护独立的队列,用于将请求保存在优先级队列以及最大线程约束队列中。当清除了最大线程约束队列时,将允许执行优先级队列中的任何类似项目(即,用于相同约束的某项目)。根据实施例,线程池的大小调整可以缩减(distill down)为递增或递减一个现有池。这是基于周期性地,例如每一秒或两秒执行的。自调整线程模型的总体结果是服务器的盒外(out-of-the box)性能的大幅度提高。然后,还可以为了适应特定需要而定制线程特征。该特性还允许服务器客户在设置其系统时具有更大的灵活性,并且向他们提供方法来针对具体的商业逻辑或客户需求集等区分其线程模型的优先级。图2示出了根据本专利技术实施例的、多个客户端使用线程和优先级队列来访问服务器的环境的图解。如图2所示,服务器120可以具有多个处理器以及服务于这些处理器的多个线程122。优先级队列124从客户端104、106、108获得请求110、112、114,并且在将这些条目126传递到线程之前,将其排入队列,其中根据任何预先配置的份额值或约束来区分其优先级,然后,线程将它们施加到处理器。图3示出了根据本专利技术实施例的用于使本文档来自技高网...

【技术保护点】
一种用于应用服务器中的自调整线程模型的系统,包括:服务器,包括一个或更多处理器;一个或更多线程,用于从客户端接收请求并将这些请求传递到处理器;以及优先级队列,用于根据份额值将线程分配给多个请求,以优化线程的性能。

【技术特征摘要】
【国外来华专利技术】US 2005-5-19 11/132,601;US 2004-5-20 60/572,9381.一种用于应用服务器中的自调整线程模型的系统,包括服务器,包括一个或更多处理器;一个或更多线程,用于从客户端接收请求并将这些请求传递到处理器;以及优先级队列,用于根据份额值将线程分配给多个请求,以优化线程的性能。2.如权利要求1所述的系统,其中所述服务器包括多个处理器。3.如权利要求1所述的系统,其中根据按比例时间值,将条目排入优先级队列。4.如权利要求3所述的系统,其中与时间值相比较,根据计算出的已经使用的线程使用时间,将条目排入队列。5.如权利要求1所述的系统,其中可以根据附加配置的约束而将条目排入队列。6.如权利要求5所述的系统,其中通过将条目排入附加约束队列来确定约束。7.一种用于应用服务器中的自调整线程模型的方法,包括以下步骤将服务器配置成根据份额值在实体之间共享线程资源;在服务器处从客户端接收请求;根据份额值、并基于每个实体已经使用了多少线程时间,将请求排入优先级队列;以及从优先级队列获得请求,并将它们提供给线程,以便由处理器处理。8.如权利要求7所述的方法,...

【专利技术属性】
技术研发人员:安诺R兰根纳里什里瓦纳鲁
申请(专利权)人:BEA系统公司
类型:发明
国别省市:US[美国]

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

1
相关领域技术
  • 暂无相关专利