CN101685335A - 基于seda的应用服务器及其节能装置和方法 - Google Patents
基于seda的应用服务器及其节能装置和方法 Download PDFInfo
- Publication number
- CN101685335A CN101685335A CN200810168113A CN200810168113A CN101685335A CN 101685335 A CN101685335 A CN 101685335A CN 200810168113 A CN200810168113 A CN 200810168113A CN 200810168113 A CN200810168113 A CN 200810168113A CN 101685335 A CN101685335 A CN 101685335A
- Authority
- CN
- China
- Prior art keywords
- hardware
- hardware resource
- thread
- application server
- duty
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Power Sources (AREA)
Abstract
本发明涉及用于基于SEDA的应用服务器的节能中间件框架。提供了一种基于SEDA的应用服务器,该应用服务器将一个请求处理过程分成通过队列相连的多个阶段,并为每个阶段分配一个或多个软件线程进行处理,包括:硬件资源管理器,用于收集与所述应用服务器中的硬件资源有关的硬件信息并且能够对硬件资源进行控制;工作负荷监测器,用于监测每个阶段以获得工作负荷信息;以及线程调度器,基于由工作负荷监测器获得的工作负荷信息以及由硬件资源管理器收集的硬件信息,确定并设置硬件资源的工作状态以优化硬件资源的能耗。
Description
技术领域
本发明一般涉及应用服务器技术领域,具体地说,涉及一种基于SEDA的应用服务器及其节能装置和方法。
背景技术
分阶段式事件驱动架构(SEDA)是加州大学伯克利分校的MattWelsh、David Culler和Eric Brewer提出的一种高性能服务器架构模型。其设计目标是:支持大规模并发处理、简化系统开发、支持处理监测、支持系统资源管理。SEDA的核心思想是把一个请求处理过程分成几个阶段,资源消耗不同的阶段使用不同数目的线程来处理,阶段间使用事件驱动的异步通信模式。因此,基于SEDA的多阶段事件驱动应用服务器总是一个多线程系统。
SEDA已成为应用服务器的经典架构并且已被接受为行业标准。下面以SEDA HTTP服务器为例对SEDA架构进行简单的说明。图1示出了SEDA HTTP服务器的架构图。在图1的架构中,应用由多个阶段构成,将每一个处理步骤独立为一个阶段。相邻的阶段通过队列相连接,队列用作阶段之间的隔离器。箭头表示阶段之间的事件流程。每个阶段可以被独立管理,并且阶段可以按顺序依次运行或并发运行,或者是两者的组合。
图2示出了SEDA的一个阶段的结构图。该阶段包括:用于接收输入的事件队列;应用开发者编写的事件处理器;用于对执行过程(如并发线程数目、批处理数目)进行控制的控制器;和用于并发处理的线程池。阶段的输入通过事件队列获得。阶段的输出会以事件形式推送到其它阶段的事件队列中。阶段之间的这种连接关系由应用开发人员指定。
近年来,在微处理器行业中,多核技术占据了主流地位。更多内核被引入单个中央处理单元(CPU)以改进整体性能,而不再以大幅提高功耗为代价简单提高CPU频率。这些多核系统适用于多线程软件应用,例如适用于基于SEDA的应用服务器,因为这种应用服务器具有许多同时运行的线程。
另一方面,近年来,能耗问题吸引了人们极大的关注。在数据中心中,超过60%的维护费用是花费在电费上。作为数据中心中的一种重要的应用,基于SEDA的应用服务器的能效对于绿色数据中心而言是非常重要且具有挑战性的问题。
随着多核CPU变成下一代服务器架构的趋势,已经为其设计了许多动态电源管理技术,诸如EIST(EnhancedTechnology)、ACPI和CPUfreq。所有这些功能和特征可以被操作系统(OS)所使用,例如,我们可以使用OS命令来关闭CPU内核或降低CPU频率。迄今为止,电源管理特征大多是在OS层和硬件层中实现的。然而,研究结果表明软件线程相对于硬件线程的分配和绑定方案对功耗具有显著影响。这意味着在OS层和硬件层中实现的电源管理还远远不是高效的,因为OS层和硬件层并不总是知道应用的工作负荷特性和应用层代码路径的组织,这使得OS层和硬件层更加难以明智地分配和映射软件线程和硬件内核。
为了填补基于SEDA的应用服务器的能效要求与OS层和硬件层提供的基础架构之间的差距,需要一种良好设计的方案。考虑到工作负荷及其QoS要求、在SEDA应用服务器中可调节的参数的数目以及OS和硬件提供的工作的多样性,这不是一个容易解决的问题。
发明内容
为了解决上述问题,本发明的主要目的是提供一种基于SEDA的应用服务器及其节能装置和方法,用以动态调节启用内核的数目、启用内核的频率、以及软件线程与启用内核的映射关系等。在本专利中,所有这些因素作为整体被称为节能配置。以在满足性能要求的同时将总功耗保持得尽可能低的方式来调节所有这些配置因素。
根据本发明的一方面,提供了一种基于SEDA的应用服务器,该应用服务器将一个请求处理过程分成通过队列相连的多个阶段,并为每个阶段分配一个或多个软件线程进行处理,该应用服务器包括:硬件资源管理器,用于收集与所述应用服务器中的硬件资源有关的硬件信息并且能够对硬件资源进行控制;工作负荷监测器,用于监测每个阶段以获得工作负荷信息;以及线程调度器,基于由工作负荷监测器获得的工作负荷信息以及由硬件资源管理器收集的硬件信息,确定并设置硬件资源的工作状态以优化硬件资源的能耗。
根据本发明的另一方面,提供了一种用于基于SEDA的应用服务器的节能装置,所述应用服务器将一个请求处理过程分成通过队列相连的多个阶段,并为每个阶段分配一个或多个软件线程进行处理,该节能装置包括:硬件资源管理器,用于收集与所述应用服务器中的硬件资源有关的硬件信息并且能够对硬件资源进行控制;工作负荷监测器,用于监测每个阶段以获得工作负荷信息;以及线程调度器,基于由工作负荷监测器获得的工作负荷信息以及由硬件资源管理器收集的硬件信息,确定并设置硬件资源的工作状态以优化硬件资源的能耗。
根据本发明的另一方面,提供了一种用于基于SEDA的应用服务器的节能方法,所述应用服务器将一个请求处理过程分成通过队列相连的多个阶段,并为每个阶段分配一个或多个软件线程进行处理,该方法包括:收集步骤,收集与所述应用服务器中的硬件资源有关的硬件信息;监测步骤,监测每个阶段以获得工作负荷信息;以及调度步骤,基于获得的工作负荷信息以及收集的硬件信息,确定并设置硬件资源的工作状态以优化硬件资源的能耗。
通过实施本发明,与传统技术相比,实现了下述优点:
1、本发明可以在运行时为基于SEDA的应用服务器自动确定能效最高的配置。换言之,本发明可以根据运行时的工作负荷自动实现每瓦特的最佳性能。
2、仅仅扩展了基于SEDA的应用服务器的管理面,保持数据面不变。所有这些改变对于应用而言是透明的。
3、本发明由于其结构和组件间清晰的接口而变得灵活且可扩展。当新的硬件或新的处理阶段出现时,可以容易地将对应的策略添加到线程调度器中。
附图说明
以下通过结合附图阅读参考下述对说明性实施例的详细描述,将更好地理解本发明本身、实施方式、其它目的及其优点。在附图中:
图1示出了SEDA HTTP服务器的架构图;
图2示出了SEDA的一个阶段的结构图;
图3示出了根据本发明一个实施例的节能的分阶段式事件驱动架构应用服务器的结构图;
图4示出了根据本发明一个实施例的用于基于SEDA的应用服务器的节能方法的流程图;
图5示出了由根据本发明的线程调度器101执行的监测处理的一个实施例的流程图;
图6示出了由根据本发明的线程调度器101执行的调度处理的一个实施例的流程图;
图7示出了用于说明本发明的优化方法的示例执行环境;以及
图8示出了本发明另一个实施例的节能的分阶段式事件驱动架构应用服务器的结构图。
具体实施方式
以下将参照附图对本发明的实施方式进行详细说明。
在以下的说明中,术语“硬件线程”指的是可以运行软件线程的硬件实体,诸如单核CPU、多核CPU中的一个内核、或者采用“芯片多线程(Chip Multi-Threading)”技术的CPU中的一个线程。“芯片多线程”技术是可以使用一个CPU内核同时运行多个软件线程的技术,例如SUN公司的处理器具有8个内核,每个内核能够同时运行4个线程。在下文中,为了便于解释,将以普通多核CPU为例进行说明,普通多核CPU的一个内核对应于一个硬件线程,其只能同时运行一个软件线程。但是本领域技术人员应该理解,不管SEDA应用服务器采用哪一种CPU,本发明都同样适用。
图3示出了根据本发明一个实施例的节能的分阶段式事件驱动架构(SEDA)应用服务器的结构图。相对于传统的SEDA应用服务器,在本发明的SEDA应用服务器中,引入了三个新组件:线程调度器101、工作负荷监测器102和硬件资源管理器103。
硬件资源管理器103通过使用操作系统OS+硬件层提供的接口(在下文中称为“下层硬件接口”),收集关于SEDA应用服务器中的硬件资源的基本信息,诸如可用内核的数目、高速缓存的大小、内核的最大和最小工作频率、内核的工作电压、内核的拓扑结构、变频间隔、内存的大小和频率等等。下层硬件接口可以是公知的EIST、ACPI和CPUfreq接口等,或者可以是应用服务器提供商自己开发的提供类似功能的接口。硬件资源管理器103还可以通过下层硬件接口对硬件资源进行控制,例如开启或关闭内核、升高或降低内核的频率或电压等。简而言之,硬件资源管理器103为线程调度器101提供了面向硬件的管理接口。
工作负荷监测器102用于在运行时对每一个阶段的运行情况进行监测以获得工作负荷信息。该工作负荷信息包括但不限于:每个阶段的软件线程数、每个阶段的当前处理速度、每个队列的长度、待处理对象在队列中的等待时间等。工作负荷监测器102每隔时间T1进行一次监测,并将监测到的工作负荷信息发送给线程调度器101。
线程调度器101用于实现节能的线程调度方案。线程调度器101基于由工作负荷监测器102获得的工作负荷信息以及由硬件资源管理器103收集的硬件信息,确定并设置硬件资源的工作状态(即节能配置)以优化硬件资源的能耗。所谓优化硬件资源的能耗就是使硬件资源的每瓦特性能最佳。硬件资源的工作状态包括但不限于硬件线程是否启用、硬件线程(内核)的频率和/或电压、硬件线程与软件线程的映射关系。在确定了硬件资源的工作状态之后,线程调度器101可以通过硬件资源管理器103设置硬件资源的工作状态。尽管在图3中,示出了线程调度器101与硬件之间通过硬件资源管理器103相连,但是本领域技术人员应该理解,线程调度器101也可以自己利用下层硬件接口直接设置硬件资源的工作状态。
此外,线程调度器101除了确定并设置硬件资源中的硬件线程的工作状态(诸如硬件线程是否启用、硬件线程的频率和/或电压、硬件线程与软件线程的映射关系)之外,还可以确定并设置其它硬件资源的工作状态。例如,在工作负荷低且满足性能要求的情况下,线程调度器101可以命令硬件资源管理器103将应用服务器的内存的频率或电压降低以进一步降低能耗。
节能配置的确定是一个典型的优化求解问题,可以使用许多已知的策略(如启发式规则)来计算节能配置。例如,可以根据以下的策略来进行计算:1、当工作负荷低时,应当减少启用的硬件内核的数量并降低其频率;2、应当使分配给当前启用的硬件内核的工作负荷尽可能一致。
以上仅仅例示了计算节能配置的几种可能的策略,并不是要穷举所有的策略。本领域技术人员可以理解,优化求解问题可以采用许多方法求解,例如通过列举方程,对方程进行数学求解,或者利用计算机进行数值拟合求解。在下文中,将会给出一种具体的示例性的确定节能配置的方法。
另外,应当注意的是,线程调度器101、工作负荷监测器102和硬件资源管理器103可以与应用服务器形成为一体,也可以形成为独立于应用服务器的装置。
图4示出了根据本发明一个实施例的用于基于SEDA的应用服务器的节能方法的流程图。该节能方法包括:收集步骤401;监测步骤402;以及调度步骤403。
在SEDA应用服务器启动时,进行系统初始化。在初始化阶段,将某默认配置应用于SEDA应用服务器。例如,以最大频率启用所有的硬件CPU内核,为每个阶段的线程池准备足够多的软件线程,这些软件线程随机地映射到内核。可将该默认配置视为最大能力(best-effort)配置。
在系统初始化之后,本发明的节能方法从收集步骤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中休眠预定时间间隔T1。然后,处理流程返回到步骤501以再次获取工作负荷信息。利用步骤501-504,通过设置适当的获取次数和时间间隔T1,可以得到在一段时间内多次监测的工作负荷的平均值。
另一方面,当在步骤503中判断已达到预定的获取次数时,处理流程进行到步骤505。在步骤505中,判断得到的工作负荷平均值相对于先前存储的工作负荷平均值是否有显著变化。如果有显著变化,则线程调度器101判定SEDA应用服务器的工作负荷发生了显著变化,需要重新对硬件资源进行调度以降低功耗。这里,所谓的“显著”是一个可设定的平衡因子,该平衡因子设置得越小,调度就越频繁,开销也就越大。在首次执行步骤505中的判定时,结果总是为“是”。在该判定为“否”的情况下,意味着工作负荷是稳定的(即硬件资源的当前工作状态仍然是适当的)。在此情况下,用当前的工作负荷平均值更新先前存储的工作负荷平均值以用于步骤505中的下一次判定,并且处理流程进行到步骤506。在步骤506中,休眠预定时间间隔T2。步骤506是可选的,设置步骤506是为了提供另一个平衡因子,T2越小,调度就越频繁,开销也就约大。在步骤505中判断为“是”时,处理流程进行到调度步骤403(图4)。
这里给出一个具体的设定例子。当T1=5秒、预定获取次数为12且T2=0时,线程调度器101每隔5秒从工作负荷监测器102获取工作负荷信息,对1分钟(5秒×12)内12次获得的工作负荷求平均值,然后将其与先前存储的工作负荷平均值进行比较。如果工作负荷平均值有显著变化(在步骤505中为是),才执行调度步骤403(图4)。也就是说,采用这种设置,每5秒监测一次,至多每分钟进行一次调度(在工作负荷平均值有显著变化的情况下)。通过这样做,避免了在仅仅监测到突发工作负荷改变时也执行调度,并且在工作负荷稳定的情况下,避免了执行不必要的调度,从而大大降低了本发明的方法的开销。
图6示出了由根据本发明的线程调度器101执行的调度处理(调度步骤403)的一个实施例的流程图。图6中的流程在图4中的监测步骤402结束时开始。在步骤501中,线程调度器101基于获得的工作负荷信息以及收集的硬件信息,确定硬件资源的工作状态。在上文中已提到可利用多种策略来计算一种节能配置。给出下面的例子,用于完整详细地说明可以采用的一种确定硬件资源的工作状态的方法。
图7示出了用于说明本发明的优化方法的示例执行环境。在图7中有3个阶段a、b和c。阶段a有两个软件线程a1和a2,并且每次线程执行需要20个CPU周期;阶段b有两个软件线程b1和b2,并且每次线程执行需要40个CPU周期;阶段c有两个软件线程c1和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,90,100>个CPU周期。
基于上述的软硬件环境以及任务,预设了三种线程调度策略:
1、全开法
启用全部6个内核。将6个软件线程(a1、a2、b1、b2、c1、c2)分配到各个内核上,每个内核分配一个线程。因为线程每次执行所需要的CPU周期不同,所以之后调节内核频率,通过降频,使得每个内核的利用率达到100%。
例如,将线程a1分配给内核1,将内核1的频率调节为20%。这样,内核1每秒执行20个CPU周期正好满足线程a1的需要。
2、阶段法
仅启用3个内核。将属于同一个SEDA处理阶段的线程分配到同一个内核上,即,将软件线程<a1,a2>,<b1,b2>,<c1,c2>按尖括号的分组分别分配到3个启用的内核。然后,调节内核的频率使得每个启用内核的利用率达到100%。
例如,将线程a1和a2分配给内核1,将内核1的频率调节为40%。这样,内核1每秒执行40个CPU周期正好满足线程a1和a2的需要。
3、串行法
仅启用2个内核。将线程<a1,b1,c1>分配到一个启用的内核上,将线程<a2,b2,c2>分配到另一个启用的内核上。然后,调节内核的频率使得每个启用内核的利用率达到100%。
例如,将线程a1、b1和c1分配给内核1,将内核1的频率调节为90%。这样,内核1每秒执行90个CPU周期正好满足线程a1、b1和c1的需要。
线程调度过程其实就是一个预估能量消耗在上述三种策略中选择一种的过程。
下面先介绍能量消耗算法。根据Mudge,T.,Power:A First-ClassArchitectural Design Constraint,Computer,Apr 2001,Volume 34,Issue 4,52-58以及E.N.(mootaz)Elnozahy,Michael Kistler,RamakrishnanRajamony,Energy-Efficient Server Clusters,In Proceedings of the 2ndWorkshop on Power-Aware Computing Systems中的记载,CPU的能耗包括两部分,一部分随电压及频率而变化;另一部分是固定能耗,代表CPU空转时的能耗。为了简化计算,CPU的能耗由下面的公式表示:
P=U*f3+h (1)
其中,U为常量,代表CPU利用率,在本示例中为1;h为常量,代表CPU空转时的能耗,在本例中假设h为0.25。为了简化计算,在本示例的实际计算中,用内核当前频率与内核最大频率的比值(例如30%)来表示f。
线程调度器101需要分别计算上述三种策略的能量消耗,计算过程如下:
1、全开法
按照上面的描述,全开法启用6个内核,每个内核的频率分别为(a1,20%),(a2,20%),(b1,40%),(b2,40%),(c1,30%),(c2,30%),CPU整体能耗为:
P1=2*(0.23+0.25)+2*(0.43+0.25)+2*(0.33+0.25)=1.698(2)
2、阶段法
按照上面的描述,阶段法启用3个内核,每个内核的频率分别为(<a1,a2>,40%),(<b1,b2>,80%),(<c1,c2>,60%),CPU整体能耗为:
P2=(0.43+0.25)+(0.83+0.25)+(0.63+0.25)=1.542(3)
3、串行法
按照上面的描述,串行法启用2个内核,每个内核的频率分别为(<a1,b1,c1>,90%),(<a2,b2,c2>,90%),CPU整体能耗为:
P3=(0.93+0.25)+(0.93+0.25)=1.958(4)
经过估算,线程调度器101判定阶段法最为节能。因而线程调度器101根据阶段法的线程调度策略来确定硬件资源的工作状态,即启用3个内核(例如内核1至3),将软件线程按照<a1,a2>,<b1,b2>,<c1,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、光学存储器等)中,所述计算机可读存储介质具有包含于其中的计算机可读程序代码。
已参考根据本发明的方法、系统及计算机程序产品的流程图和/或方框图说明了本发明。流程图和/或方框图中的每个方框,以及流程图和/或方框图中的方框的组合显然可由计算机程序指令实现。这些计算机程序指令可被提供给通用计算机、专用计算机、嵌入式处理器或者其他可编程的数据处理设备的处理器,以产生一台机器,从而指令(所述指令通过计算机或者其他可编程数据处理设备的处理器)产生用于实现在流程图和/或方框图的一个或多个方框中规定的功能的装置。
这些计算机程序指令也可保存在一个或多个计算机的读存储器中,每个这种存储器能够指挥计算机或者其他可编程数据处理设备按照特定的方式发挥作用,从而保存在计算机可读存储器中的指令产生一种制造产品,所述制造产品包括实现在流程图和/或方框图的一个或多个方框中规定的功能的指令装置。
计算机程序指令也可被加载到一个或多个计算机或者其他可编程数据处理设备上,使得在所述计算机或者其他可编程数据处理设备上执行一系列的操作步骤,从而在每个这样的设备上产生计算机实现的过程,以致在该设备上执行的指令提供用于实现在流程图和/或方框图的一个或多个方框中规定的步骤。
以上结合本发明的实施方式对本发明的原理进行了说明,但这些说明只是示例性的,不应理解为对本发明的任何限制。本领域技术人员可以对本发明进行各种改变和变形,而不会背离由随附权利要求所限定的本发明的精神和范围。
Claims (20)
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中任一项所述的节能方法,其中,在所述调度步骤中,在确定了硬件资源的工作状态后将其与前一次确定的硬件资源的工作状态进行比较,仅在这两者不同的情况下才设置硬件资源的工作状态,并用当前确定的硬件资源的工作状态更新前一次确定的硬件资源的工作状态。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN200810168113A CN101685335A (zh) | 2008-09-27 | 2008-09-27 | 基于seda的应用服务器及其节能装置和方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN200810168113A CN101685335A (zh) | 2008-09-27 | 2008-09-27 | 基于seda的应用服务器及其节能装置和方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN101685335A true CN101685335A (zh) | 2010-03-31 |
Family
ID=42048517
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN200810168113A Pending CN101685335A (zh) | 2008-09-27 | 2008-09-27 | 基于seda的应用服务器及其节能装置和方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101685335A (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102855218A (zh) * | 2012-05-14 | 2013-01-02 | 中兴通讯股份有限公司 | 数据处理系统、方法及装置 |
US8381002B2 (en) | 2010-06-23 | 2013-02-19 | International Business Machines Corporation | Transparently increasing power savings in a power management environment |
CN103092677A (zh) * | 2013-01-10 | 2013-05-08 | 华中科技大学 | 一种适用于虚拟化平台的内存节能系统和方法 |
US8448006B2 (en) | 2010-10-19 | 2013-05-21 | International Business Machines Corporation | Performing virtual and/or physical resource management for power management |
CN103596045A (zh) * | 2012-08-14 | 2014-02-19 | 上海海德数据科技有限公司 | 一种用于视频码流播放终端设备的节能控制方法 |
CN106484523A (zh) * | 2015-08-24 | 2017-03-08 | 大唐移动通信设备有限公司 | 一种硬件设备管理方法及其装置 |
-
2008
- 2008-09-27 CN CN200810168113A patent/CN101685335A/zh active Pending
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8381002B2 (en) | 2010-06-23 | 2013-02-19 | International Business Machines Corporation | Transparently increasing power savings in a power management environment |
US8423811B2 (en) | 2010-06-23 | 2013-04-16 | International Business Machines Corporation | Transparently increasing power savings in a power management environment |
US8448006B2 (en) | 2010-10-19 | 2013-05-21 | International Business Machines Corporation | Performing virtual and/or physical resource management for power management |
CN102855218A (zh) * | 2012-05-14 | 2013-01-02 | 中兴通讯股份有限公司 | 数据处理系统、方法及装置 |
CN103596045A (zh) * | 2012-08-14 | 2014-02-19 | 上海海德数据科技有限公司 | 一种用于视频码流播放终端设备的节能控制方法 |
CN103596045B (zh) * | 2012-08-14 | 2017-03-15 | 吴飞 | 一种用于视频码流播放终端设备的节能控制方法 |
CN103092677A (zh) * | 2013-01-10 | 2013-05-08 | 华中科技大学 | 一种适用于虚拟化平台的内存节能系统和方法 |
CN106484523A (zh) * | 2015-08-24 | 2017-03-08 | 大唐移动通信设备有限公司 | 一种硬件设备管理方法及其装置 |
CN106484523B (zh) * | 2015-08-24 | 2019-07-30 | 大唐移动通信设备有限公司 | 一种硬件设备管理方法及其装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104239152B (zh) | 用于提高事件处理的涡轮加速性能的方法和装置 | |
US7756972B2 (en) | System for power savings in server farms | |
US9715397B2 (en) | Methods and apparatuses for controlling thread contention | |
CN102043675B (zh) | 一种基于任务处理请求任务量大小的线程池管理方法 | |
CN101379453B (zh) | 使用动态工作负载特征来控制cpu频率和电压调节的方法和装置 | |
CN102622273B (zh) | 基于自学习负载预测的集群按需启动方法 | |
CN104049716B (zh) | 一种结合温度感知的计算机节能方法及系统 | |
CN104423529B (zh) | 中央处理单元状态调整方法和装置 | |
Gu et al. | Energy efficient scheduling of servers with multi-sleep modes for cloud data center | |
US11435802B2 (en) | Work load scheduling for multi core systems with under-provisioned power delivery | |
Mao et al. | A multi-resource task scheduling algorithm for energy-performance trade-offs in green clouds | |
CN101685335A (zh) | 基于seda的应用服务器及其节能装置和方法 | |
Li et al. | Opportunistic scheduling in clouds partially powered by green energy | |
CN102819460A (zh) | 一种基于预算功率指导的高能效gpu集群系统调度算法 | |
CN101819459B (zh) | 一种基于异构对象存储系统的功耗控制方法 | |
CN101290585A (zh) | 一种嵌入式系统实时任务的调度方法 | |
CN110362392A (zh) | 一种etl任务调度方法、系统、设备及存储介质 | |
CN102955549A (zh) | 一种多核cpu的电源管理方法、系统及cpu | |
CN103888279A (zh) | 基于反馈控制循环的资源池动态管理的方法和系统 | |
CN111090505B (zh) | 一种多处理器系统中任务调度的方法和系统 | |
CN103023802B (zh) | 一种面向web集群的低能耗调度系统和方法 | |
CN107203255A (zh) | 一种网络功能虚拟化环境中迁移节能方法和装置 | |
Xiang et al. | Run-time management for multicore embedded systems with energy harvesting | |
CN105847385B (zh) | 一种基于运行时长的云计算平台虚拟机调度方法 | |
Terzopoulos et al. | Bag-of-task scheduling on power-aware clusters using a dvfs-based mechanism |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C02 | Deemed withdrawal of patent application after publication (patent law 2001) | ||
WD01 | Invention patent application deemed withdrawn after publication |
Open date: 20100331 |