基于seda的应用服务器及其节能装置和方法

文档序号:6467224阅读:200来源:国知局
专利名称:基于seda的应用服务器及其节能装置和方法
技术领域
本发明一般涉及应用服务器技术领域,具体地说,涉及一种基于 SEDA的应用服务器及其节能装置和方法。
背景技术
分阶段式事件驱动架构(SEDA)是加州大学伯克利分校的Matt Welsh 、 David Culler和Eric Brewer提出的一种高性能服务器架构模型。 其设计目标是支持大规模并发处理、简化系统开发、支持处理监测、 支持系统资源管理。SEDA的核心思想是把一个请求处理过程分成几个 阶段,资源消耗不同的阶段使用不同数目的线程来处理,阶段间使用事 件驱动的异步通信模式。因此,基于SEDA的多阶段事件驱动应用服务 器总是一个多线程系统。
SEDA已成为应用服务器的经典架构并且已被接受为行业标准。下 面以SEDAHTTP服务器为例对SEDA架构进行简单的说明。图1示出 了 SEDAHTTP服务器的架构图。在图1的架构中,应用由多个阶段构 成,将每一个处理步骤独立为一个阶段。相邻的阶段通过队列相连接, 队列用作阶段之间的隔离器。箭头表示阶段之间的事件流程。每个阶段 可以被独立管理,并且阶段可以按顺序依次运行或并发运行,或者是两 者的组合。
图2示出了 SEDA的一个阶段的结构图。该阶段包括用于接收输 入的事件队列;应用开发者编写的事件处理器;用于对执行过程(如并 发线程数目、批处理数目)进行控制的控制器;和用于并发处理的线程 池。阶段的输入通过事件队列获得。阶段的输出会以事件形式推送到其 它阶段的事件队列中。阶段之间的这种连接关系由应用开发人员指定。
近年来,在微处理器行业中,多核技术占据了主流地位。更多内核被引入单个中夬处理单元(CPU)以改进整体性能,而不再以大幅 提高功耗为代价简单提高CPU频率。这些多核系统适用于多线程軟 件应用,例如适用于基于SEDA的应用服务器,因为这种应用服务器 具有许多同时运行的线程。
另一方面,近年来,能耗问题吸引了人们极大的关注。在数据中 心中,超过60%的维护费用是花费在电费上。作为数据中心中的一种 重要的应用,基于SEDA的应用服务器的能效对于绿色数据中心而言 是非常重要且具有挑战性的问题。
随着多核CPU变成下一代服务器架构的趋势,已经为其设计了 许多动态电源管理技术,诸如EIST (Enhanced Intel SpeedStep Technology) 、 ACPI和CPUfreq。所有这些功能和特征可以被操作 系统(OS)所使用,例如,我们可以使用OS命令来关闭CPU内核 或降低CPU频率。迄今为止,电源管理特征大多是在OS层和硬件层 中实现的。然而,研究结果表明软件线程相对于硬件线程的分配和绑 定方案对功耗具有显著影响。这意味着在OS层和硬件层中实现的电 源管理还远远不是高效的,因为OS层和硬件层并不总是知道应用的 工作负荷特性和应用层代码路径的组织,这使得OS层和硬件层更加 难以明智地分配和映射软件线程和硬件内核。
为了填补基于SEDA的应用服务器的能效要求与OS层和硬件层 提供的基础架构之间的差距,需要一种良好设计的方案。考虑到工作 负荷及其QoS要求、在SEDA应用服务器中可调节的参数的数目以 及OS和硬件提供的工作的多样性,这不是一个容易解决的问题。

发明内容
为了解决上述问题,本发明的主要目的是提供一种基于SEDA的 应用服务器及其节能装置和方法,用以动态调节启用内核的数目、启 用内核的频率、以及软件线程与启用内核的映射关系等。在本专利中, 所有这些因素作为整体被称为节能配置。以在满足性能要求的同时将 总功耗保持得尽可能低的方式来调节所有这些配置因素。
6根据本发明的一方面,提供了一种基于SEDA的应用服务器,该 应用服务器将一个请求处理过程分成通过队列相连的多个阶段,并为 每个阶段分配一个或多个软件线程进行处理,该应用服务器包括硬 件资源管理器,用于收集与所述应用服务器中的硬件资源有关的硬件 信息并且能够对硬件资源进行控制;工作负荷监测器,用于监测每个 阶段以获得工作负荷信息;以及线程调度器,基于由工作负荷监测器 获得的工作负荷信息以及由硬件资源管理器收集的石更件信息,确定并
设置硬件资源的工作状态以优化硬件资源的能耗。
根据本发明的另一方面,提供了一种用于基于SEDA的应用服务 器的节能装置,所述应用服务器将一个请求处理过程分成通过队列相 连的多个阶段,并为每个阶段分配一个或多个软件线程进行处理,该 节能装置包括硬件资源管理器,用于收集与所述应用服务器中的硬 件资源有关的硬件信息并且能够对硬件资源进行控制;工作负荷监测 器,用于监测每个阶段以获得工作负荷信息;以及线程调度器,基于 由工作负荷监测器获得的工作负荷信息以及由硬件资源管理器收集 的硬件信息,确定并设置硬件资源的工作状态以优化硬件资源的能 耗。
根据本发明的另一方面,提供了一种用于基于SEDA的应用服务 器的节能方法,所述应用服务器将一个请求处理过^f呈分成通过队列相 连的多个阶段,并为每个阶段分配一个或多个软件线程进行处理,该 方法包括收集步骤,收集与所述应用服务器中的硬件资源有关的硬 件信息;监测步骤,监测每个阶段以获得工作负荷信息;以及调度步 骤,基于获得的工作负荷信息以及收集的硬件信息,确定并设置硬件 资源的工作状态以优化硬件资源的能耗。
通过实施本发明,与传统技术相比,实现了下述优点 1、本发明可以在运行时为基于SEDA的应用服务器自动确定能效最 高的配置。换言之,本发明可以根据运行时的工作负荷自动实现每瓦 特的最佳性能。2、 仅仅扩展了基于SEDA的应用服务器的管理面,保持数据面不变。 所有这些改变对于应用而言是透明的。
3、 本发明由于其结构和组件间清晰的接口而变得灵活且可扩展。当 新的硬件或新的处理阶段出现时,可以容易地将对应的策略添加到线 程调度器中。


以下通过结合附图阅读参考下述对说明性实施例的详细描述,将 更好地理解本发明本身、实施方式、其它目的及其优点。在附图中 图1示出了 SEDAHTTP服务器的架构图; 图2示出了 SEDA的一个阶段的结构图3示出了根据本发明一个实施例的节能的分阶段式事件驱动架 构应用服务器的结构图4示出了根据本发明一个实施例的用于基于SEDA的应用服务 器的节能方法的流程图5示出了由根据本发明的线程调度器101执行的监测处理的一 个实施例的流程图6示出了由根据本发明的线程调度器101执行的调度处理的一 个实施例的流程图7示出了用于说明本发明的优化方法的示例执行环境;以及
图8示出了本发明另 一个实施例的节能的分阶段式事件驱动架构 应用服务器的结构图。
具体实施例方式
以下将参照附图对本发明的实施方式进行详细说明。 在以下的说明中,术语"硬件线程,,指的是可以运行软件线程的硬 件实体,诸如单核CPU、多核CPU中的一个内核、或者采用"芯片多 线程(Chip Multi-Threading),,技术的CPU中的一个线程。"芯片多 线程"技术是可以使用 一个CPU内核同时运行多个软件线程的技术,例如SUN公司的Niagara⑧处理器具有8个内核,每个内核能够同时运 行4个线程。在下文中,为了便于解释,将以普通多核CPU为例进行说 明,普通多核CPU的一个内核对应于一个硬件线程,其只能同时运行一 个软件线程。但是本领域技术人员应该理解,不管SEDA应用服务器采 用哪一种CPU,本发明都同样适用。
图3示出了根据本发明一个实施例的节能的分阶段式事件驱动架 构(SEDA)应用服务器的结构图。相对于传统的SEDA应用服务器, 在本发明的SEDA应用服务器中,引入了三个新组件线程调度器 101、工作负荷监测器102和硬件资源管理器103。
硬件资源管理器103通过使用操作系统OS +硬件层提供的接口 (在下文中称为"下层硬件接口,,),收集关于SEDA应用服务器中的 硬件资源的基本信息,诸如可用内核的数目、高速緩存的大小、内核 的最大和最小工作频率、内核的工作电压、内核的拓朴结构、变频间 隔、内存的大小和频率等等。下层硬件接口可以是公知的EIST、 ACPI 和CPUfreq接口等,或者可以是应用服务器提供商自己开发的提供类 似功能的接口。硬件资源管理器103还可以通过下层硬件接口对硬件 资源进行控制,例如开启或关闭内核、升高或降低内核的频率或电压 等。简而言之,硬件资源管理器103为线程调度器101提供了面向硬 件的管理接口。
工作负荷监测器102用于在运行时对每一个阶段的运行情况进行 监测以获得工作负荷信息。该工作负荷信息包括但不限于每个阶段 的软件线程数、每个阶段的当前处理速度、每个队列的长度、待处理 对象在队列中的等待时间等。工作负荷监测器102每隔时间Tl进行 一次监测,并将监测到的工作负荷信息发送给线程调度器101。
线程调度器101用于实现节能的线程调度方案。线程调度器101 基于由工作负荷监测器102获得的工作负荷信息以及由硬件资源管理 器103收集的硬件信息,确定并设置硬件资源的工作状态(即节能配 置)以优化硬件资源的能耗。所谓优化硬件资源的能耗就是使硬件资 源的每瓦特性能最佳。硬件资源的工作状态包括但不限于硬件线程是否启用、硬件线程(内核)的频率和/或电压、硬件线程与软件线程的
映射关系。在确定了硬件资源的工作状态之后,线程调度器101可以 通过硬件资源管理器103设置硬件资源的工作状态。尽管在图3中, 示出了线程调度器101与硬件之间通过硬件资源管理器103相连,但 是本领域技术人员应该理解,线程调度器101也可以自己利用下层硬 件接口直接设置硬件资源的工作状态。
此外,线程调度器101除了确定并设置硬件资源中的硬件线程的 工作状态(诸如硬件线程是否启用、硬件线程的频率和/或电压、硬件 线程与软件线程的映射关系)之外,还可以确定并设置其它硬件资源 的工作状态。例如,在工作负荷低且满足性能要求的情况下,线程调 度器101可以命令硬件资源管理器103将应用服务器的内存的频率或 电压降低以进一步降低能耗。
节能配置的确定是一个典型的优化求解问题,可以使用许多已知 的策略(如启发式规则)来计算节能配置。例如,可以根据以下的策 略来进行计算1、当工作负荷低时,应当减少启用的硬件内核的数 量并降低其频率;2、应当使分配给当前启用的硬件内核的工作负荷 尽可能一致。
以上仅仅例示了计算节能配置的几种可能的策略,并不是要穷举 所有的策略。本领域技术人员可以理解,优化求解问题可以采用许多 方法求解,例如通过列举方程,对方程进行数学求解,或者利用计算 机进行数值拟合求解。在下文中,将会给出一种具体的示例性的确定 节能配置的方法。
另外,应当注意的是,线程调度器IOI、工作负荷监测器102和 硬件资源管理器103可以与应用服务器形成为一体,也可以形成为独 立于应用服务器的装置。
图4示出了根据本发明 一个实施例的用于基于SEDA的应用服务 器的节能方法的流程图。该节能方法包括收集步骤401;监测步骤 402;以及调度步骤403。
在SEDA应用服务器启动时,进行系统初始化。在初始化阶段,将某默认配置应用于SEDA应用服务器。例如,以最大频率启用所有 的硬件CPU内核,为每个阶段的线程池准备足够多的软件线程,这 些软件线程随机地映射到内核。可将该默认配置视为最大能力 (best-effort)酉己i。
在系统初始化之后,本发明的节能方法从收集步骤401开始,在 步骤401中,硬件资源管理器收集与所述应用服务器中的硬件资源有 关的硬件信息,该硬件信息包括但不限于可用内核(硬件线程)的数目、 内核的最小和最大频率、变频间隔、高速緩存大小、内核拓朴结构等。
在收集步骤401之后执行监测步骤402,在步骤402中,监测每 个阶段以获得工作负荷信息。该工作负荷信息包括但不限于每个阶 段的软件线程数、每个阶段的当前处理速度、每个队列的长度、待处 理对象在队列中的等待时间、CPU利用率等。
在监测步骤402之后执行调度步骤403,在步骤403中,基于获 得的工作负荷信息以及收集的硬件信息,确定并设置硬件资源的工作 状态以降低硬件资源的能耗。硬件资源的工作状态包括但不限于硬件 线程是否启用、硬件线程的频率和/或电压、硬件线程与软件线程的映 射关系。
上述节能方法可以是周期性执行的,但是因为硬件信息是恒定不 变的,只需要收集一次即可,所以当调度步骤403执行完毕时,流程 返回到步骤402以再次监测工作负荷,而不需要再获取硬件信息。
上述节能方法会为SEDA应用服务器引入一定的开销。另外,工 作负荷仅仅是在某时间点监测到的,对于工作负荷偶尔突变的SEDA 应用服务器而言,监测 一 时间段内的工作负荷要比监测 一 时间点处的 工作负荷更有价值。为了使上述节能方法的开销尽可能小,可以对上 述节能方法的各个步骤的执行定时以及执行条件进行限制。图5示出 了由根据本发明的线程调度器101执行的监测处理(监测步骤402 ) 的一个实施例的流程图。
图5中的流程在图4中的收集步骤401结束时开始。在步骤501 中,线程调度器101从工作负荷监测器102获取当前的工作负荷信息,然后在步骤502中,对所获取的工作负荷信息进行累积,所述累积例 如为求一段时间内多次获取的工作负荷的平均值。在步骤503中判断 是否达到预定的获取次数,如果尚未达到预定的获取次数,则在步骤 504中休眠预定时间间隔Tl。然后,处理流程返回到步骤501以再次 获取工作负荷信息。利用步骤501 -504,通过设置适当的获取次数和 时间间隔Tl,可以得到在一段时间内多次监测的工作负荷的平均值。
另一方面,当在步骤503中判断已达到预定的获取次数时,处理 流程进行到步骤505。在步骤505中,判断得到的工作负荷平均值相 对于先前存储的工作负荷平均值是否有显著变化。如果有显著变化, 则线程调度器101判定SEDA应用服务器的工作负荷发生了显著变 化,需要重新对硬件资源进行调度以降低功耗。这里,所谓的"显著" 是一个可设定的平衡因子,该平衡因子设置得越小,调度就越频繁, 开销也就越大。在首次执行步骤505中的判定时,结果总是为"是"。 在该判定为"否"的情况下,意味着工作负荷是稳定的(即硬件资源的 当前工作状态仍然是适当的)。在此情况下,用当前的工作负荷平均 值更新先前存储的工作负荷平均值以用于步骤505中的下一次判定, 并且处理流程进行到步骤506。在步骤506中,休眠预定时间间隔T2。 步骤506是可选的,设置步骤506是为了提供另一个平衡因子,T2 越小,调度就越频繁,开销也就约大。在步骤505中判断为"是"时, 处理流程进行到调度步骤403 (图4)。
这里给出一个具体的设定例子。当Tl-5秒、预定获取次数为12 且T2 - 0时,线程调度器101每隔5秒从工作负荷监测器102获取工 作负荷信息,对l分钟(5秒xl2)内12次获得的工作负荷求平均值, 然后将其与先前存储的工作负荷平均值进行比较。如果工作负荷平均
值有显著变化(在步骤505中为是),才执行调度步骤403 (图4)。 也就是说,采用这种设置,每5秒监测一次,至多每分钟进行一次调 度(在工作负荷平均值有显著变化的情况下)。通过这样做,避免了 在仅仅监测到突发工作负荷改变时也执行调度,并且在工作负荷稳定 的情况下,避免了执行不必要的调度,从而大大降低了本发明的方法的开销。
图6示出了由根据本发明的线程调度器101执行的调度处理(调 度步骤403 )的一个实施例的流程图。图6中的流程在图4中的监测 步骤402结束时开始。在步骤501中,线程调度器IOI基于获得的工 作负荷信息以及收集的硬件信息,确定硬件资源的工作状态。在上文 中已提到可利用多种策略来计算一种节能配置。给出下面的例子,用 于完整详细地说明可以采用的一种确定硬件资源的工作状态的方法。
图7示出了用于说明本发明的优化方法的示例执行环境。在图7 中有3个阶段a、 b和c。阶段a有两个软件线程al和a2,并且每次 线程执行需要20个CPU周期;阶段b有两个软件线程bl和b2,并 且每次线程执行需要40个CPU周期;阶段c有两个软件线程cl和 c2,并且每次线程执行需要30个CPU周期。另外,假设工作任务是, 每个队列每秒有两个对象需要处理。以上信息都可以通过工作负荷监视 器获得。
假设系统的硬件信息如下,该硬件信息是通过硬件资源管理器获 得的
1、 系统具有一个6核CPU, 6个内核为内核1至6;
2、 每个内核可以独立调节频率,可将内核频率调节为最高频率的<20%, 30 % , 40 % , 50 % , 60 % , 70 % , 80 %, 90 % , 100 % > ,这分别可使一个内核每 秒执行<20, 30, 40, 50, 60, 70, 80,卯,100>个CPU周期。
基于上述的软硬件环境以及任务,预设了三种线程调度策略
1、 全#法
启用全部6个内核。将6个软件线程(al、 a2、 bl、 b2、 cl、 c2) 分配到各个内核上,每个内核分配一个线程。因为线程每次执行所需要 的CPU周期不同,所以之后调节内核频率,通过降频,使得每个内核的 利用率达到100%。
例如,将线程al分配给内核l,将内核1的频率调节为20%。这样, 内核1每秒执行20个CPU周期正好满足线程al的需要。
2、 伊度法仅启用3个内核。将属于同一个SEDA处理阶段的线程分配到同一个 内核上,即,将软件线程〈al, a2>, <bl, b2>, <cl, c2〉按尖括号的分组分 别分配到3个启用的内核。然后,调节内核的频率使得每个启用内核的 利用率达到100%。
例如,将线程al和a2分配给内核1,将内核1的频率调节为40%。 这样,内核1每秒执行40个CPU周期正好满足线程al和a2的需要。 3、声/f法
仅启用2个内核。将线程〈al,bl,cl〉分配到一个启用的内核上,将线 程々2,b2,c2〉分配到另一个启用的内核上。然后,调节内核的频率使得 每个启用内核的利用率达到100%。
例如,将线程al、 bl和cl分配给内核1,将内核1的频率调节为 90%。这样,内核1每秒执行卯个CPU周期正好满足线程al、 bl和 cl的需要。
线程调度过程其实就是一个预估能量消耗在上述三种策略中选择一 种的过程。
下面先介绍能量消耗算法。根据Mudge, T., Power: A First-Class Architectural Design Constraint, Computer, Apr 2001, Volume 34, Issue 4, 52-58 以及E.N.(mootaz)Elnozahy, Michael Kistler, Ramakrishnan Rajamony, Energy-Efficient Server Clusters, In Proceedings of the 2nd Workshop on Power-Aware Computing Systems中的记载,CPU的能耗
包括两部分, 一部分随电压及频率而变化;另一部分是固定能耗,代表
CPU空转时的能耗。为了简化计算,CPU的能耗由下面的公式表示
<formula>formula see original document page 14</formula>
其中,(7为常量,代表CPU利用率,在本示例中为l; A为常量,代表 CPU空转时的能耗,在本例中假设A为0,25。为了简化计算,在本示例 的实际计算中,用内核当前频率与内核最大频率的比值(例如30%)来
表示f。
线程调度器101需要分别计算上述三种策略的能量消耗,计算过程 如下1、 全矛法
按照上面的描述,全开法启用6个内核,每个内核的频率分别为(al, 20%), (a2, 20%), (bl, 40%), (b2, 40%), (cl, 30%), (c2, 30%), CPU整体 能耗为
Pl=2*(0.23+0.25)+2*(0.43+0.25)+2*(0.33+0.25)=1.698 (2)
2、 絲法
按照上面的描述,阶段法启用3个内核,每个内核的频率分别为(〈al, a2>, 40%), (<bl, b2>, 80%), (<cl, c2>, 60%) , CPU整体能耗为 P2=(0.43+0.25)+(0.83+0.25)+(0.63+0.25)=1.542 (3)
3、 財法
按照上面的描述,串行法启用2个内核,每个内核的频率分别为(〈al, bl, cl>,卯%), (<a2, b2, c2>,卯%) , CPU整体能耗为:
P3=(0.93+0.25)+(0.93+0.25)=1.958 (4) 经过估算,线程调度器101判定阶段法最为节能。因而线程调度器 101根据阶段法的线程调度策略来确定硬件资源的工作状态,即启用3 个内核(例如内核1至3 ),将软件线程按照〈al, a2>, <bl, b2>, <cl, c2> 分组并分别分配给启用的3个内核1至3,并将内核1至3的频率分别调 节为最高频率的40%、 80%、 60%。
需要注意的是,给出以上的简化示例仅仅是为了使本发明的优化方 法的说明易于理解。本领域技术人员应该理解,釆用本发明的这种思想, 完全可以计算更复杂的情况的节能配置。
现在回到图6,在步骤601中确定了硬件资源的工作状态(节能 配置)之后,在步骤602中,线程调度器101通过硬件资源管理器103 设置硬件资源的工作状态。在步骤602之后,在步骤603中,线程调 度器101休眠预定时间间隔T2。同样,步骤603也是可选的,其作用 与图5的步骤506类似,在此不再详细描述。但是应当指出的是,步 骤506和步骤603应当同时存在或同时不存在。
图8示出了本发明另 一个实施例的节能的分阶段式事件驱动架构 应用服务器的结构图。在该实施例中,与图3的实施例相比,添加了另一个组件,即全局虚拟线程池104。全局虚拟线程池104用于存储 软件线程和硬件线程的映射关系。在线程调度器101在步骤601中确 定了硬件资源的工作状态(包括硬件线程与软件线程的映射关系)之 后,与在全局虚拟线程池104存储的映射关系进行比较,如果确定的 映射关系和存储的映射关系相同,则不执行步骤602而直接跳到步骤 603。在确定的映射关系和存储的映射关系不同的情况下,用所确定 的映射关系来更新存储的映射关系以用于下一次比较,然后照常执行 步骤602。通过设置全局虚拟线程池104,可以避免不必要地设置硬 件资源的工作状态,从而可以降低本发明的节能方法的开销。
本领域技术人员会认识到,可以以方法、系统或计算机程序产品 的形式提供本发明的实施例。因此,本发明可采取全硬件实施例、全 软件实施例,或者组合软件和硬件的实施例的形式。硬件和软件的典 型的结合可以是带有计算机程序的通用计算机系统,当程序被加栽并 被执行时,控制计算机系统,从而可以执行上述的方法。
本发明可以嵌入在计算机程序产品中,它包括使此处描述的方法 得以实施的所有特征。所述计算机程序产品被包含在一个或多个计算 机可读存储介质(包括,但不限于,磁盘存储器、CD-ROM、光学存 储器等)中,所述计算机可读存储介质具有包含于其中的计算机可读 程序代码。
已参考根据本发明的方法、系统及计算机程序产品的流程图和/ 或方框图说明了本发明。流程图和/或方框图中的每个方框,以及流 程图和/或方框图中的方框的组合显然可由计算机程序指令实现。这 些计算机程序指令可被提供给通用计算机、专用计算机、嵌入式处理 器或者其他可编程的数据处理设备的处理器,以产生一台机器,从而 指令(所述指令通过计算机或者其他可编程数据处理设备的处理器) 产生用于实现在流程图和/或方框图的一个或多个方框中规定的功能 的装置。
这些计算机程序指令也可保存在一个或多个计算机的读存储器 中,每个这种存储器能够指挥计算机或者其他可编程数据处理设备按
16照特定的方式发挥作用,从而保存在计算机可读存储器中的指令产生 一种制造产品,所述制造产品包括实现在流程图和/或方框图的 一个 或多个方框中规定的功能的指令装置。
计算机程序指令也可被加栽到一个或多个计算机或者其他可编 程数据处理设备上,使得在所述计算机或者其他可编程数据处理设备 上执行一系列的操作步骤,从而在每个这样的设备上产生计算机实现 的过程,以致在该设备上执行的指令提供用于实现在流程图和/或方 框图的一个或多个方框中规定的步骤。
以上结合本发明的实施方式对本发明的原理进行了说明,但这些 说明只是示例性的,不应理解为对本发明的任何限制。本领域技术人 员可以对本发明进行各种改变和变形,而不会背离由随附权利要求所 限定的本发明的精神和范围。
权利要求
1、一种基于SEDA的应用服务器,该应用服务器将一个请求处理过程分成通过队列相连的多个阶段,并为每个阶段分配一个或多个软件线程进行处理,该应用服务器包括硬件资源管理器,用于收集与所述应用服务器中的硬件资源有关的硬件信息并且能够对硬件资源进行控制;工作负荷监测器,用于监测每个阶段以获得工作负荷信息;以及线程调度器,基于由工作负荷监测器获得的工作负荷信息以及由硬件资源管理器收集的硬件信息,确定并设置硬件资源的工作状态以优化硬件资源的能耗。
2、 根据权利要求1所述的基于SEDA的应用服务器,其中,所 述硬件资源包括硬件线程。
3、 根据权利要求2所述的基于SEDA的应用服务器,其中,所 述硬件线程对应于单核CPU、或多核CPU的一个内核、或采用芯片 多线程技术的CPU的一个线程。
4、 根据权利要求3所述的基于SEDA的应用服务器,其中,所 述硬件资源的工作状态包括硬件线程是否启用、硬件线程的频率和/ 或电压、硬件线程与软件线程的映射关系。
5、 根据权利要求4所迷的基于SEDA的应用服务器,其中,所 述硬件资源还包括内存,并且所述硬件资源的工作状态还包括内存的 频率和/或电压。
6、 根据权利要求1至5中任一项所述的基于SEDA的应用服务 器,其中,线程调度器对多种调度策略的能量消耗进行预先估计,从 而基于能量消耗最少的调度策略确定硬件资源的工作状态。
7、 根据权利要求1至5中任一项所述的基于SEDA的应用服务 器,其中,线程调度器通过硬件资源管理器设置硬件资源的工作状态。
8、 根据权利要求1至5中任一项所述的基于SEDA的应用服务 器,其中,线程调度器周期性地从工作负荷监测器获得工作负荷信息,并且线程调度器周期性地进行确定和设置,所述确定和设置的周期大 于所述获得工作负荷信息的周期。
9、 根据权利要求1至5中任一项所述的基于SEDA的应用服务 器,其中,所述硬件信息包括可用内核的数目、高速緩存的大小、内 核的最大和最小频率、内核的变频间隔、内核的拓朴结构、内存的大 小和频率中的至少一个。
10、 根据权利要求1至5中任一项所述的基于SEDA的应用服 务器,还包括全局虚拟线程池,该全局虛拟线程池用于存储线程调度 器前一次确定的硬件资源的工作状态;其中,线程调度器在确定了硬件资源的工作状态后将其与全局虛 拟线程池所存储的前一次确定的硬件资源的工作状态进行比较,仅在 这两者不同的情况下才设置硬件资源的工作状态,并将当前确定的硬 件资源的工作状态更新到全局虛拟线程池中。
11、 一种用于基于SEDA的应用服务器的节能装置,所述应用 服务器将一个请求处理过程分成通过队列相连的多个阶段,并为每个 阶段分配一个或多个软件线程进行处理,该节能装置包括硬件资源管理器,用于收集与所述应用服务器中的硬件资源有关的硬件信息并且能够对硬件资源进行控制;工作负荷监测器,用于监测每个阶段以获得工作负荷信息;以及 线程调度器,基于由工作负荷监测器获得的工作负荷信息以及由硬件资源管理器收集的硬件信息,确定并设置硬件资源的工作状态以优化硬件资源的能耗。
12、 一种用于基于SEDA的应用服务器的节能方法,所述应用 服务器将一个请求处理过程分成通过队列相连的多个阶段,并为每个 阶段分配一个或多个软件线程进行处理,该方法包括收集步骤,收集与所述应用服务器中的硬件资源有关的硬件信息;监测步骤,监测每个阶段以获得工作负荷信息;以及 调度步骤,基于获得的工作负荷信息以及收集的硬件信息,确定并设置硬件资源的工作状态以优化硬件资源的能耗。
13、 根据权利要求12所述的节能方法,其中,所述硬件资源包 括硬件线程。
14、 根据权利要求13所述的节能方法,其中,所述硬件线程对 应于单核CPU、或多核CPU的一个内核、或采用芯片多线程技术的 CPU的一个线程。
15、 根据权利要求14所述的节能方法,其中,所述硬件资源的 工作状态包括硬件线程是否启用、硬件线程的频率和/或电压、硬件线 程与软件线程的映射关系。
16、 根据权利要求15所述的节能方法,其中,所述硬件资源还 包括内存,并且所述硬件资源的工作状态还包括内存的频率和/或电 压。
17、 根据权利要求12至16中任一项所述的节能方法,其中,在 所述调度步骤中对多种调度策略的能量消耗进行预先估计,从而基于 能量消耗最少的调度策略确定硬件资源的工作状态。
18、 根据权利要求12至16中任一项所述的节能方法,其中,所 述监测步骤是周期性地执行的,所述调度步骤是周期性地执行的,所 述调度步骤的执行周期大于所述监测步骤的执行周期。
19、 根据权利要求12至16中任一项所述的节能方法,其中,所述硬件信息包括可用内核的数目、高速緩存的大小、内核的最大和最小频率、内核的变频间隔、内核的拓朴结构、内存的大小和频率中的 至少一个。
20、 根据权利要求12至16中任一项所述的节能方法,其中,在 所述调度步骤中,在确定了硬件资源的工作状态后将其与前一次确定 的硬件资源的工作状态进行比较,仅在这两者不同的情况下才设置硬 件资源的工作状态,并用当前确定的硬件资源的工作状态更新前一次 确定的硬件资源的工作状态。
全文摘要
本发明涉及用于基于SEDA的应用服务器的节能中间件框架。提供了一种基于SEDA的应用服务器,该应用服务器将一个请求处理过程分成通过队列相连的多个阶段,并为每个阶段分配一个或多个软件线程进行处理,包括硬件资源管理器,用于收集与所述应用服务器中的硬件资源有关的硬件信息并且能够对硬件资源进行控制;工作负荷监测器,用于监测每个阶段以获得工作负荷信息;以及线程调度器,基于由工作负荷监测器获得的工作负荷信息以及由硬件资源管理器收集的硬件信息,确定并设置硬件资源的工作状态以优化硬件资源的能耗。
文档编号G06F1/32GK101685335SQ20081016811
公开日2010年3月31日 申请日期2008年9月27日 优先权日2008年9月27日
发明者哲 向, 立 李, 伟 薛, 高志国 申请人:国际商业机器公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1