用于服务器集群处的高能效负载均衡的系统和方法

文档序号:7896551阅读:147来源:国知局
专利名称:用于服务器集群处的高能效负载均衡的系统和方法
用于服务器集群处的高能效负载均衡的系统和方法
背景技术
如今,数据中心消耗了大量的能量,并且这种趋势日益增加。在数据中心中,负载 均衡器可放置在一组服务器(有时称为服务器集群)或者其他数据处理单元的前面。负载 均衡器可以负责将到来的请求分配给多个服务器。诸如随机或者循环负载分派之类的传统 方法以分散的方式将到来的请求分配给活动的服务器。这些请求例如可以寻找数据库环境 中的数据,或者例如可以寻找分布式计算环境中的计算资源。在这种情况下,对于每个单独 的处理单元而言,请求频繁地自负载均衡器到达,即使统计而言该单元可能大量时间是空 闲的。因此,在处理单元可能表现为处于空闲时仍然会消耗能量。当进入和退出低功率状 态时存在着延时,例如,由于没有立即进入或退出低功率状态。在该延时时段期间,处理单 元不进行任何处理,然而处理单元仍然会消耗比其严格处于低功率(或“休眠”)状态时所 消耗的更高的功率。因此,处理单元可能很少有机会进入深度低功率状态。因此,数据中心 的功耗会是相当高的。为了获得可伸缩性以及快速的响应时间,通常需要大量的处理单元(有时称为集 群)来处理请求(例如,HTTP请求)。负载均衡器例如可以位于服务器集群的前端,以便执 行活动的服务器之间的负载分配。可将负载均衡应用于许多类型的处理单元,例如网络服 务器、应用程序服务器以及数据库服务器。在现代的数据中心中,集群中不是所有的处理单元在所有的时间都可以是活动 的。当到来的业务变得繁重时,更多的处理单元会可以被调用;以及当业务轻时,将关闭一 些处理单元以节省功率。对于活动的处理单元而言,目标使用率通常远少于100%,以便提 供良好的响应时间并为突然的请求突发预留容量空间。在目标使用率为60%的情况下,处 理单元将空闲40%的时间。然而,如何随着时间来分配空闲对处理单元能效具有很大的影 响。存在着多种方案来用于在活动的处理单元之间分配到来的请求。通常使用的方案 包括1)随机分派,其中将请求指派给由负载均衡器随机选择的活动的处理单元。平均 而言,负载在处理单元之间均勻地分布。该方案可由各种哈希函数来实现;2)循环分派,其中负载均衡器以循环为基础将请求指派给活动的处理单元。这使 得能够均等地指派处理单元;以及3)加权循环分派,其中将权重指派给组中的每个处理单元,以便更高容量的处理 单元服务更多的请求。例如,负载均衡器可以在将一个请求指派给稍慢的处理单元时,指派 两个请求给更快的处理单元。就能效而言,这些或相关方案的共同缺点是负载均衡器以分散的方式将到来的请 求分配给活动的处理单元。在这种情况下,每个单独的处理单元必须处理频繁地来自负载 均衡器的请求,即使统计而言其在大量时间是空闲的。因此,处理单元很少有机会进入深度 低功率状态。频繁的唤醒使得处理单元从来都不能进入深度休眠状态。


图1是根据一个实施方式示出了处理单元集群的拓扑的框图。图2示出了一个实施方式中的到处理单元的请求的时序和分布。图3示出了一个实施方式中的批量处理和低功率状态的时序。图4是示出了一个实施方式的总体操作的流程图。图5是根据一个实施方式示出了请求的接收和批量的组织的流程图。图6是根据一个实施方式示出了批量大小的自适应修改的流程图。图7是示出了一个实施方式的操作的流程图。图8是示出了软件或固件实施方式的框图。附图中,附图标记中最左边的数字标识该附图标记首次出现于其中的附图。
具体实施例方式本文讨论了以允许低功率的处理单元周期的方式、在一组处理单元(诸如服务 器)之间均衡负载的方法和系统。这允许处理单元的高能效操作。而且,该过程可以适应 于系统响应时间的改变,使得当运行条件如此规定时可以改善系统响应时间。图1示出了一组处理单元120-122(诸如服务器集群)的示例。这些处理单元一 起工作以服务到来的请求105。请求105在负载均衡器110处被接收到。然后,负载均衡器 以下面描述的方式将请求分配给处理单元。根据一个实施方式,用于在服务器集群处均衡负载的系统如图2所示。示出了时 间线210,在该时间线210期间,请求220可以在负载均衡器处被接收到。可在请求220到 达负载均衡器时,将请求220发送给处理单元。当发送给特定处理单元的请求的数目达到 规定的批量大小时,可将随后的请求发送给下一个处理单元。可将请求发送给该后一处理 单元,直到发送给该处理单元的数目达到所述批量大小。该过程继续将后续的成批量的请 求发送给各个随后的处理单元。当已经将一个批量发送给最后的处理单元时,将下一批量 发送给第一处理单元。这样,以循环的方式将成批量的请求单独地分派给处理单元。在所 示的示例中,批量大小为3。当分派给处理单元的请求的数目达到3时,可以将下一批的三 个请求分派给下一个处理单元。第一批量221包含三个请求,并且当它们到达负载均衡器时可以被发送给第一处 理单元251。当已经接收到第四个请求时,可以将该请求发送给下一处理单元252。类似 地,可将接下来的两个请求分派给该下一处理单元252。因此,当第二批量中的各个请求到 达负载均衡器时,该第二批量的三个请求(批量22 被分派给处理单元252。类似地,可将 下一批量223发送给下一处理单元253。假设在该示例中存在着三个处理单元,则可将第四 批量发送给第一处理单元251,以及可将下一批量225发送给第二处理单元252。可以以循 环的方式继续将批量分派给处理单元。这种安排允许任何给定的处理单元在处理批量请求之间的延长时段期间空闲并 进入低功率状态。对于所示的系统,给定的处理单元可以服务一个批量,然后当两个其它的 批量可被其它处理单元处理时可以空闲。处理单元252例如可以处理批量222,然后可以在 其它单元处理批量223和224时空闲。处理单元252可以不需要恢复操作,直到批量225 被负载均衡器所分派。
通常,如果存在着m个处理单元,则任何给定的处理单元处理每个第m个批量。在 处理一个批量之后,处理单元可以在接下来的m-1个批量被其它处理单元处理时空闲并进 入低功率状态。这如图3所示。时间线351示出了在处理单元251处的批量请求的接收; 时间线352示出了在处理单元252处的批量请求的接收;以及时间线353示出了在处理单 元253处的批量请求的接收。时间线351包括处理单元251的空闲间隔361,该空闲间隔 361位于处理整个第一批量221与整个第四批量2M之间。在间隔361期间,可由其它处 理单元来处理批量,从而在该间隔期间处理单元251可以进入低功率状态。类似地,时间线 352包括处理单元252的空闲间隔362,该空闲间隔362位于处理该系统的第二批量222与 该系统的第五批量225之间。注意,该图示示出了大小为三个请求的批量。该数目仅是出于说明的目的,并不表 示限制。在可替换的实施方式中,批量可以具有不同的大小。图3还示出了三个处理单元; 在可替换的实施方式中,处理单元的数目可以更少或更多。一个实施方式的处理如图4所示。在410处,当接收到请求时,可以将接收到的请 求分派给处理单元。如上所述,一旦已经分派给一个处理单元的请求的数目达到批量大小, 可以将随后批量的请求发送给下一处理单元等。在430处,可以在需要时调整批量大小。改 变批量大小的决策可以取决于用于处理请求的系统响应时间。系统响应时间可以取决于单 独的请求的响应时间。单独的请求的响应时间表示从在负载均衡器处接收到该请求到在处 理单元处完成该请求的处理的间隔。如果用于服务请求的系统响应时间不在指定的范围, 则可以改变批量大小。例如,如果系统响应时间过长,则可以做出决策来减少批量大小。这 将意味着分派给给定处理单元的连续请求的数目不是那么大。如果批量大小减少了,则在 负载均衡器处随着时间接收请求并将请求分派给处理单元,但将更快地达到批量大小。这 可以降低负载均衡器处的任何的排队延迟,因此请求将更快地到达处理单元。因此,当批量 大小减少时,系统响应时间可以得到改善。在另一实施方式中,当增加批量大小不预示着会明显地恶化系统响应时间时,可 以做出决策来增加批量大小。该变化可以增加处理单元的空闲间隔的长度。这将允许处理 单元在更长的时段中处于低功率状态,从而节省能量。图5根据一个实施方式更详细地示出了请求的分派(图4中的410)。在510处, 确定是否已经接收到请求。如果没有,可以重复510,直到接收到请求。当接收到请求时,该 过程可以继续到520处,在此,将请求分派给处理单元,诸如服务器。在530处,确定连续分 派给该处理单元的请求的数目是否已经达到了批量大小。如果是,则在540处,针对该批量 的分派过程可以结束。如果在530处确定连续分派给该处理单元的请求的数目还没有达到 批量大小,则该过程可以在510处继续。图6根据一个实施方式示出了批量大小的自适应调整。在610处,可以确定系统 响应时间。系统响应时间描述了处理单元服务请求所需的时间,其自请求在负载均衡器处 被接收到的时间点开始。因此,系统响应时间可以取决于处理单独的请求所需的时间长度。 可以以若干方式中的任意方式来计算系统响应时间。一种方式考虑最近的请求,并确定服 务该请求所需要的时间。该单独的响应时间将然后被当做系统响应时间。另一种可能是考 虑一些数目的最近的单独的响应,并确定这些单独的响应时间的平均值或者中间值。在后 一实施方式中可以考虑的请求的数目例如可以是预设值或者可以是批量大小。另一种可能可以是考虑之前时间段(例如最后两分钟)中所服务的一些或所有请求,并确定在该间隔 中所服务的请求的单独的响应时间的平均值或中间值。可替换地,可以使用除平均值和中 间值之外的其他函数。注意,确定系统响应时间的这些各种方式代表不同的实施方式,并不 意味着限制其范围。在620处,确定在610处计算的系统响应时间是否超出上限。该上限可以表示在 保持期望的服务质量的情况下所允许的最大系统响应时间或者以其他方式与该最大系统 响应时间相关。作为响应,超出该上限可以导致在630处减少批量大小。如果没有超出上 限,则该过程可以在640处结束。批量大小的减少可以是固定或可变的。例如,每当系统响应时间超出上限时,就可 以在630处将批量大小减少固定的量。可替换地,在不同的情况下,该减少可以是不同的。 如果系统响应时间超出上限更多的量,则可以将批量大小减少更多的量。如果系统响应时 间大量增加,这将允许更快地调整批量大小。类似地,如果系统响应时间超出上限中等的 量,则可以将批量大小减少中等的量。因此,批量大小可以被调整到的程度与系统响应时间 和可接受的范围之间的差异量相关。图7更详细地示出了一个实施方式的处理。在710处,可以将变量η初始化为零, 其中η可以用于指示下一批量请求将被分派到的处理单元。在715处,将变量r初始化为 零,其中r可以用于指示已经被分派给特定处理单元的连续请求的数目。在720处,可以确 定在负载均衡器处是否已经接收到请求。如果没有,则在该过程等待请求时重复720。如果 已经接收到请求,则在730处,将该请求分派给处理单元η。在735处,可以将r递增1,这是因为在730处已经将连续分派给处理单元η的请 求的数目增加了 1。在740处,可以确定已经连续分派给处理单元η的请求的数目r是否等 于批量大小。如果没有足够的请求已经被连续地分派给处理单元η以构成一个批量,则该 过程返回720以等待另一请求。如果分派的请求的数目r目前等于批量大小,则在750处, 可以将r重置为零,因为这是已经被分派给下一处理单元的连续请求的数目。在760处,可 以将η递增1并对m求模,其中m等于可用处理单元的数目。这允许将随后的批量发送给 下一处理单元(对m求模)。这种安排允许任何给定的处理单元在处理批量请求之间的延 长时段期间空闲并进入低功率状态。在770处,如上所述那样确定系统响应时间。在780处,可以确定系统响应时间是 否超出上限。如果系统响应时间超出上限,则在790处,可以减少批量大小。然后该过程可 以返回720以等待另一请求。在一些实施方式中,当系统响应时间足够快时,可替换地增加批量大小。在该情况 中,通过使批量更大,批量之间任何给定处理单元的空闲时间可以增加,从而降低了功耗。 这在783和786处示出。如果在780处确定系统响应时间没有超出上限,则在783处可以 确定系统响应时间是否小于下限。如果不小于,系统响应时间位于上限和下限之间,则该过 程可以返回720以等待另一请求。如果系统响应时间小于下限,则在786处,可以增加批量 大小。上文描述的用于管理处理单元和能耗的系统可以在硬件、固件、或软件、或它们的 一些组合中实现。另外,本文公开的任何一个或多个特征可以在硬件、软件、固件以及它们 的组合中实现,包括离散和集成电路逻辑、专用集成电路(ASIC)逻辑以及微控制器,并可以被实现为特定于域的集成电路封装的一部分或者集成电路封装的组合。本文所使用的术 语“软件”指的是计算机程序产品,包括具有存储于其中的计算机程序逻辑的计算机可读介 质,该计算机程序逻辑使计算机系统执行本文公开的一个或多个特征和/或特征的组合。上文描述的处理的软件或固件实施方式如图8所示。系统800可以包括处理器 840和存储器主体810,存储器主体810可以包括存储计算机程序逻辑820的一个或多个计 算机可读媒介。例如,存储器810可以被实现为硬盘和驱动器、诸如压缩盘和驱动器之类的 可移动媒介、或者只读存储器(ROM)设备中的一个或多个。处理器840和存储器810可以 使用本领域普通技术人员已知的若干技术中的任意一种(诸如总线)来进行通信。包含在 存储器810中的逻辑可以由处理器840来读取和执行。一个或多个I/O端口和/或I/O设 备(总体示为I/O 830)也可以连接到处理器840和存储器810。在一个实施方式中,系统 800可以被并入到负载均衡器中,例如图1所示的负载均衡器。计算机程序逻辑820可以包括分派模块822。分派模块822可以负责将成批量的 所接收到的请求分派给各个连续的处理单元。计算机程序逻辑820还可以包括系统响应时 间确定模块824。模块拟4可以负责确定用于服务请求的系统响应时间。如上所述,该确定 可以使用最近的请求的单独的响应时间或者一些最近请求的集合或子集的单独的响应时 间作为输入。计算机程序逻辑820还可以包括批量大小调整模块826,用于如果所确定的系 统响应时间超出门限则负责改变批量大小。如上所述,如果系统响应时间超出上限则可以 减少批量大小。在可替换的实施方式中,如果系统响应时间下降到小于下限则也可以增加 批量大小。调整的大小可以变化,并且可以与系统响应时间偏离可接受范围的量相关。借助于示出了本发明的方法和系统的功能、特征和关系的功能构造框,公开了本 文的方法和系统。出于描述方便的目的,本文已经任意地限定了这些功能构造框的至少一 些界限。可以定义可替换的界限,只要能够适当地执行它们的指定功能和关系。虽然本文公开了各种实施方式,但是应当理解,它们只是以示例而非限制性的方 式进行示出。对相关领域技术人员显而易见的是,在不背离本文公开的方法和系统的精神 和范围的情况下,可以进行形式和细节上的各种改变。因此,权利要求的宽度和范围不受本 文公开的任何示例性实施方式的限制。
权利要求
1.一种用于处理单元负载均衡的方法,包括从负载均衡器向处理单元分派针对处理单元服务的连续的请求,其中,分派给所述处 理单元的连续的请求的数目表示大小为批量大小的批量,并且随后的批量的请求被分派给 相继的各个处理单元,其中,未正在处理批量的处理单元进入低功率状态;监视用于服务所述请求的系统响应时间;以及当所述系统响应时间不在可接受的范围时,为随后的分派修改所述批量大小。
2.根据权利要求1所述的方法,其中,所述处理单元包括服务器。
3.根据权利要求1所述的方法,其中,所述系统响应时间不在所述可接受的范围包括 所述系统响应时间超出上限。
4.根据权利要求3所述的方法,其中,所述批量大小的修改包括减少所述批量大小。
5.根据权利要求4所述的方法,其中,所述批量大小被减少到与所述系统响应时间超 出所述上限的量相关的程度。
6.根据权利要求1所述的方法,其中,所述系统响应时间不在所述可接受的范围包括 所述系统响应时间下降到低于下限,并且所述批量大小的修改包括增加所述批量大小。
7.一种用于处理单元负载均衡的系统,包括分派模块,用于从负载均衡器向处理单元分派针对处理单元服务的连续的请求,其中, 分派给所述处理单元的连续的请求的数目表示大小为批量大小的批量,并且还用于使处理 器将随后的批量的请求分派给相继的各个处理单元,其中,未正在处理批量的处理单元进 入低功率状态;监视模块,用于监视用于服务所述请求的系统响应时间;以及修改模块,用于当所述系统响应时间不在可接受的范围时为随后的分派修改所述批量大小。
8.根据权利要求7所述的系统,其中,所述处理单元包括服务器。
9.根据权利要求7所述的系统,其中,所述系统响应时间不在所述可接受的范围包括 所述系统响应时间超出上限。
10.根据权利要求9所述的系统,其中,所述批量大小的修改包括减少所述批量大小。
11.根据权利要求10所述的系统,其中,所述批量大小被减少到与所述系统响应时间 超出所述上限的量相关的程度。
12.根据权利要求7所述的系统,其中,所述系统响应时间不在所述可接受的范围包括 所述系统响应时间下降到低于下限,并且所述批量大小的修改包括增加所述批量大小。
13.一种用于处理单元负载均衡的系统,包括处理器;以及与所述处理器进行通信的存储器,其中,所述存储器存储用于指示所述处理器执行以 下操作的多个处理指令从负载均衡器向处理单元分派针对处理单元服务的连续的请求,其中,分派给所述处 理单元的连续的请求的数目表示大小为批量大小的批量,并且随后的批量的请求被分派给 相继的各个处理单元,其中,未正在处理批量的处理单元进入低功率状态;监视用于服务所述请求的系统响应时间;以及当所述系统响应时间不在可接受的范围时,为随后的分派修改所述批量大小。
14.根据权利要求13所述的系统,其中,所述处理单元包括服务器。
15.根据权利要求13所述的系统,其中,所述系统响应时间不在所述可接受的范围包 括所述系统响应时间超出上限。
16.根据权利要求15所述的系统,其中,所述批量大小的修改包括减少所述批量大小。
17.根据权利要求16所述的系统,其中,所述批量大小被减少到与所述系统响应时间 超出所述上限的量相关的程度。
18.根据权利要求13所述的系统,其中,所述系统响应时间不在所述可接受的范围包 括所述系统响应时间下降到低于下限,并且所述批量大小的修改包括增加所述批量大小。
全文摘要
公开了以允许低功耗的服务器周期的方式、在一组处理单元(诸如服务器)之间均衡负载的方法和系统。这允许该组处理单元的高能效操作。而且,该过程适应于系统响应时间的改变,使得当运行条件如此规定时可以改善系统响应时间。
文档编号H04L29/08GK102104626SQ20101060157
公开日2011年6月22日 申请日期2010年12月20日 优先权日2009年12月22日
发明者C-F·辛, J-s·蔡, R·王, S·尤塔, T-Y·C·泰 申请人:英特尔公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1