一种任务调度方法、装置及服务器集群的制作方法

文档序号:6493663阅读:153来源:国知局
一种任务调度方法、装置及服务器集群的制作方法
【专利摘要】本发明公开了一种任务调度方法、装置及服务器集群。所述方法包括:采集所述各服务器节点的温度和功耗信息;获取所述各服务器节点运行的所述任务的性能指标;根据所述功耗和温度信息以及所述任务的性能指标,计算所述各服务器节点的每瓦特性能;根据所述各服务器节点的每瓦特性能计算各服务器节点的任务分配权值;根据所述各服务器节点的任务分配权值将所述任务分配给各服务器节点,以使所述计算机集群总的功耗最低。本发明根据任务分配权值进行任务调度,实现针对不同处理任务的能耗最优的任务调度策略。
【专利说明】一种任务调度方法、装置及服务器集群
【技术领域】
[0001]本发明涉及云计算【技术领域】,尤其涉及一种任务调度方法、装置及服务器集群。
【背景技术】
[0002]在大规模运算系统中,通常采用一个包括多台服务器的计算机集群来共同完成一项任务。网络中的负载分发设备或软件,起着将任务分配到不同的服务器节点上运行的作用,而任务的具体调度或分配方法,一般称为“调度策略”。
[0003]调度策略通常包括均匀分配和加权分配两类。均匀分配就是通过随机或者顺序轮询的方式,将处理任务基本均匀的分配到多个服务器节点中,也就是“负载均衡”。加权分配又称非均匀分配,是指在任务调度中,各服务器节点不再是完全平等的关系,而是基于某种预先设定的策略或者权重进行任务调度,包括:(I)根据服务器的处理能力、网络通信能力等的不同,给予不同权值,然后根据权重来分配任务。例如,分给4路服务器的负载是2路服务器的两倍;(2)出于管理、节能等原因,对于服务器节点采取“尽量用满”的策略,即先用少数节点承担处理任务,当超出处理能力后,再把任务分配给新的服务器节点。[0004]随着对IT系统和服务器能耗的逐渐重视,服务器的能源效率(通常定义为Performance/per Watt,缩写为PPW,即“每瓦特性能”)也逐渐成为加权调度策略中考虑的因素。由于配置、架构等不同,不同服务器的“每瓦特性能”相差很大,有时达数倍之多。因此,现在已经出现一些技术方案,将服务器能效值作为任务调度的一种权值,以达到在完成同样处理任务的情况下,尽量降低整个系统能耗的目的。
[0005]现有技术中考虑服务器能效的调度方案中,通常有两种方式:
[0006]1、根据服务器设备通常利用率越高能效越高的特点,将负载集中在少数的服务器中,而将其它服务器节点关闭或休眠。这种方式虽然可以节能,但由于服务器从关机或者休眠状态恢复需要时间,因此对于服务器访问无法预料的情况,可能造成现有节点负载过高、服务无法及时响应;
[0007]2、根据预先测试得到固定的“服务器能效”,通常与CPU利用率等易于监测的指标对应,然后基于能效权值进行任务调度。这种方案的主要问题在于无法动态、准确反映当前业务模型下的任务量与功耗的关系,以及不同任务负载、不同环境温度等情况下,能效存在变化的情况,因此无法真正实现能效最优的调度策略。

【发明内容】

[0008]为了解决现有技术中CPU利用率并不能真实的反映服务器的实际性能以及服务器能效受负载影响的技术问题,本发明提出一种任务调度方法,基于对多台不同服务器当前负载和能耗、温度等的监控,通过计算服务器节点的能效得到该服务器节点的任务分配权值,根据任务分配权值进行任务调度,实现针对不同处理任务的能耗最优的任务调度策略。
[0009]本发明的一个方面,提供一种任务调度方法,应用于计算机集群,包括以下步骤:采集所述各服务器节点的温度和功耗信息;获取所述各服务器节点运行的所述任务的性能指标;根据所述功耗和温度信息以及所述任务的性能指标,计算所述各服务器节点的每瓦特性能;根据所述各服务器节点的每瓦特性能计算各服务器节点的任务分配权值;根据所述各服务器节点的任务分配权值将所述任务分配给各服务器节点。
[0010]本发明的另一个方面,提供一种任务调度装置,应用于计算机集群,包括任务分配模块、采集模块、性能指标获取模块、能效计算模块、任务分配权值计算模块,其中,所述任务分配模块,用于根据所述各服务器节点的任务分配权值将所述任务分配给各服务器节点;所述采集模块,用于采集所述各服务器节点的温度和功耗信息;所述性能指标获取模块,用于获取所述各服务器节点运行的所述任务的性能指标;所述能效计算模块,用于根据所述功耗和温度信息以及所述任务的性能指标,计算所述各服务器节点的每瓦特性能;所述任务分配权值计算模块,用于根据所述各服务器节点的每瓦特性能计算各服务器节点的任务分配权值。
[0011]本发明的又一方面,还提供了一种服务器集群,包括多个服务器节点,以及上述任
务调度装置。
[0012]本发明的方法、装置及服务器集群,通过对多台服务器节点当前负载和能耗、温度等的监控,动态计算服务器能效,进而得到各服务器节点的任务分配权值并进行任务调度,实现针对不同处理任务动态选择能耗最优的任务调度策略,能够降低整个系统能耗。
[0013]本发明的一些优选实施例在任务调度过程中建立各种类型任务的能效模型,当新的任务需要处理时,计算机集群能够根据当前任务类型、性能需求、服务器进风口温度等信息,通过查询能效模型,快速获得最优调度策略并用于任务分配。该能效模型还能够根据各个任务的处理进行自适应修正。
[0014]下面通过附图和实施例,对本发明的技术方案做进一步的详细描述。
【专利附图】

【附图说明】
[0015]附图用来提供对本发明的进一步理解,并且构成说明书的一部分,与本发明的实施例一起用于解释本发明,并不构成对本发明的限制。在附图中:
[0016]图1是本发明任务调度方法第一实施例的流程图;
[0017]图2是服务器功耗和负载之间关系的示意图;
[0018]图3是服务器功耗与环境温度之间关系的示意图;
[0019]图4是本发明任务调度方法第二实施例的流程图;
[0020]图5是本发明任务调度装置第一实施例的结构示意图;
[0021]图6是本发明任务调度装置第二实施例的结构示意图。
【具体实施方式】
[0022]以下结合附图对本发明的优选实施例进行说明,应当理解,此处所描述的优选实施例仅用于说明和解释本发明,并不用于限定本发明。
[0023]本发明主要思想是通过监控集群中各服务器节点在处理当前任务时的能耗和温度,动态计算各服务器节点的能效,实现针对不同类型的处理任务选择最优的任务调度策略,以便降低整个集群的能耗。[0024]方法实施例
[0025]实施例一
[0026]计算机集群中的网络负载分发设备或者分发软件能够将任务分配到集群中的各服务器节点。例如BIG-1P链路控制器就是常见的网络负载均衡设备,能够对网络链路的数据流进行管理以及任务的分配,进行任务分配后,各服务器节点开始运行所述任务。
[0027]图1为根据本发明任务调度方法实施例的流程图,该方法应用于计算机集群,包括以下步骤:
[0028]步骤102、采集所述各服务器节点的进风口温度和功耗信息;
[0029]智能平台管理接口(IPMI,Intelligent Platform Management Interface)是一种开放标准的硬件管理接口规格,定义了嵌入式管理子系统进行通信的特定方法。IPMI信息通过基板管理控制器(BMC,位于IPMI规格的硬件组件上)进行交流,使用低级硬件智能管理,不使用操作系统进行管理,因此,该配置允许带外服务器管理,操作系统不必负担传输系统状态数据的任务。这样,通过各服务器节点的IPMI接口监视并获取服务器的物理特征,如温度、电压、风扇工作状态、电源状态等。在该步骤中,主要通过智能型平台管理接口获取各服务器节点的功耗和温度信息,此处的服务器温度信息主要是服务器进风口温度。
[0030]步骤104、获取所述各服务器节点运行的所述任务的性能指标;
[0031]通过集群中的网络负载均衡设备或者软件,能够实时获得各服务器节点与运行任务(Task)相关的性能指标(Performance)。以web服务为例,一般包括web服务的同时并发数、搜索服务的每秒能处理的搜索次数、游戏服务的最大同时在线游戏人数等等。另外,根据运行任务类型的不同所获取的性能指标也会相应改变。
[0032]这与现有技术中各服务器节点CPU使用率等单纯计算机性能指标不同。在很多情况下,CPU利用率并不能真实的反映服务器的实际性能,因为CPU主要反映服务器的计算性能,但很多应用,如Web类、Cache类和存储类等,都不是计算密集型的业务,而是对网络I/
O、内存或者磁盘I/O敏感型的业务。以Web类服务为例,如果增加一倍的网络吞吐能力,月艮务器的Web访问性能也能够增加将近一倍,但CPU可能仅仅增加10%而已。因此,web并发访问量、单位时间处理交易量等实际业务量指标,是比CPU利用率等更适合、对用户真正有价值的性能指标。
[0033]步骤106、根据所述功耗和温度信息以及所述任务的性能指标,计算所述各服务器节点的每瓦特性能;
[0034]服务器的功耗通常来说会随着负载的增加而提升,也就是说,服务器利用率越高,服务器提供同样处理能力所消耗的功耗越低。但测试数据表明,不同类型和配置的服务器的增长曲线不同,在不同利用率情况下,不同服务器的功耗可能存在“交替领先”的情况,如图2所示。服务器的功耗还受到环境温度(一般指服务器进风口温度)的影响。根据美国采暖制冷与空调工程师协会(ASHRAE)所公布的服务器测试结果,随着温度升高,服务器的功耗根据优化程度的不同也有不同程度的上升,如图3所示。
[0035]因此,通过上述分析,能够得知服务器功耗(Power)与任务类型Task、服务器节点温度以及任务性能指标存在相关关系,其中,功耗与任务性能指标和服务器温度成正比关系,任务类型则决定具体的数值关系,即
[0036]Power = F(Task, Performance, Temperature)。[0037]根据测量和采集得到的服务器节点的功耗值、该节点运行的任务类型、任务性能指标以及服务器节点的温度数值信息,能够得到服务器能效值PPW,即每瓦特性能,具体可以通过下述公式计算得到:
[0038]PPff = Performance/Power。
[0039]步骤108、根据所述各服务器节点的每瓦特性能计算各服务器节点的任务分配权值;
[0040]根据步骤106得到的每瓦特性能数值或者当前任务下多台不同服务器节点的每瓦特性能相对值,根据以下公式计算得到各服务器节点的任务分配权值。
[0041]Weight = k*PPW,或者 Weight = k*PPff/Average (PPff)。
[0042]式中k为增益系数,用于将各服务器节点的PPW数值之间的差距进行适当放大,以便于根据任务分配权值进行任务调度。
[0043]步骤110、根据所述各服务器节点的任务分配权值将所述任务分配给各服务器节点。
[0044]按照使所述计算机集群总的功耗最低的基本原则,根据计算得到的各服务器节点任务分配权值进行任务分配。一般采用将任务分配给任务分配权值最大的服务器节点。如果所述任务分配权值最大的服务器节点超过预设处理能力的阈值,则将所述任务分配给剩余的空闲服务器节点中任务分配权值最大的服务器节点。
[0045]根据实际需要,也可以采取其他策略,例如按照各服务器节点任务分配权值的比例将所述任务进行分配。
[0046]该实施例中,通过对集群中的各服务器节点的当前负载采用业务量指标,而不是传统的CPU利用率指标,以及能耗、温度等的监控,动态计算服务器能效,实现针对不同类型处理任务的能耗最优的任务调度策略,以达到集群能耗降低的目的。
[0047]实施例二
[0048]图4为根据本发明任务调度方法另一种优选实施例的流程图,包括以下步骤:
[0049]步骤402、将任务分配给计算机集群的各服务器节点;
[0050]步骤404、采集所述各服务器节点的进风口温度和功耗信息;
[0051]步骤406、获取所述各服务器节点运行的所述任务的性能指标;
[0052]步骤408、根据所述功耗和温度信息以及所述任务的性能指标,计算所述各服务器节点的每瓦特性能;
[0053]步骤410、根据所述各服务器节点的每瓦特性能计算各服务器节点的任务分配权值;
[0054]步骤412、根据所述各服务器节点的任务分配权值将所述任务分配给各服务器节点,以使所述计算机集群总的功耗最低。
[0055]步骤414、针对不同类型的任务,重复上述步骤402至412,保存各任务的类型和对应各服务器节点的任务分配权值,作为所述类型任务的能效模型;
[0056]步骤416、当所述计算机集群处理新的所述类型的任务时,直接调用所述能效模型进行任务调度。
[0057]优选的,在所述能效模型建立之后,针对不同性能和温度等条件下,通过处理新的同种类型任务得到新的数据,并用新的数据对原有的模型数据进行插值等近似计算,对原有能效模型进行补充样本,这样通过闭环调整和修正,使能效模型更精准。
[0058]该实施例能够建立起针对不同类型的任务,各服务器节点的能效模型,在处理新任务时针对任务类型快速调用对应的能效模型进行任务调度,能够提高集群处理任务的能力和效率,并能在处理各种类型的任务时不断对能效模型进行修正和优化,使任务调度更加精准。
[0059]装置实施例
[0060]实施例三
[0061]如图5所示,为本发明任务调度装置实施例的结构示意图,该装置设置在计算机集群上,包括任务分配模块502、采集模块504、性能指标获取模块506、能效计算模块508、任务分配权值计算模块510,其中,
[0062]所述任务分配模块502,用于根据所述各服务器节点的任务分配权值将所述任务分配给各服务器节点,以使所述计算机集群总的功耗最低;所述采集模块504,用于采集所述各服务器节点的进风口温度和功耗信息;所述性能指标获取模块506,用于获取所述各服务器节点运行的所述任务的性能指标;所述能效计算模块508,用于根据所述功耗和温度信息以及所述任务的性能指标,计算所述各服务器节点的每瓦特性能;所述任务分配权值计算模块510,用于根据所述各服务器节点的每瓦特性能计算各服务器节点的任务分配权值。
[0063]优选的,采集模块504通过所述各服务器节点的智能型平台管理接口获取各服务器节点的功耗和温度信息。性能指标获取模块506通过网络负载均衡设备获取相关任务的性能指标。能效计算模块508根据所述任务的类型、所述任务的性能指标和所述服务器进风口温度计算得到各服务器节点的功耗;根据所述各服务器节点的功耗和所述任务的性能指标计算得到各服务器节点的每瓦特性能。任务分配模块510将所述任务分配给任务分配权值最大的服务器节点。如果所述任务分配权值最大的服务器节点超过预设处理能力的阈值,则将所述任务分配给剩余的空闲服务器节点中任务分配权值最大的服务器节点。
[0064]任务分配模块510还可以按照各服务器节点任务分配权值的比例将所述任务进行分配。
[0065]实施例四
[0066]如图6所示,除实施例五中的各模块外,本实施例的任务调度装置还包括能效建模模块612,用于保存所述任务的类型和对应各服务器节点的任务分配权值,作为所述类型任务的能效模型;所述任务分配模块602用于,当所述计算机集群处理新的所述类型的任务时,直接调用所述能效模型进行任务调度。
[0067]在该实施例中,能效建模模块612保存各任务的类型和对应各服务器节点的任务分配权值,作为所述类型任务的能效模型;当所述计算机集群处理新的所述类型的任务时,直接调用所述能效模型进行任务调度。并且,在所述能效模型建立之后,通过处理新的同种类型任务对所述能效模型进行闭环调整和修正。
[0068]实施例五
[0069]本发明实施例还提供了 一种服务器集群,包括多个服务器节点,该服务器集群中包括如实施例三和四种任一所述的任务调度装置。
[0070]服务器集群通过运行各种不同类型的任务,得到针对各类型任务的能效模型,并储存在任务调度装置的能效建模模块中,当继续运行相同类型的任务时,集群从能效建模模块中快速调度对应的能效模型,能够进行更加合理的任务调度,从整体上降低服务器集群的功耗,同时更加有效率的运行处理该任务。优选的,在服务器集群的运行过程中,还能够通过闭环方式不断的对能效建模模块中的能效模型进行修正,使其不断优化。
[0071]本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于一计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:服务器、单元、模块、ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
[0072]最后应说明的是:以上所述仅为本发明的优选实施例而已,并不用于限制本发明,尽管参照前述实施例对本发明进行了详细的说明,对于本领域的技术人员来说,其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
【权利要求】
1.一种任务调度方法,应用于计算机集群,包括:采集所述各服务器节点的温度和功耗信息; 获取所述各服务器节点运行的所述任务的性能指标; 根据所述功耗和温度信息以及所述任务的性能指标,计算所述各服务器节点的每瓦特?生倉泛; 根据所述各服务器节点的每瓦特性能计算各服务器节点的任务分配权值; 根据所述各服务器节点的任务分配权值将所述任务分配给各服务器节点。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括: 保存所述任务的类型和对应各服务器节点的任务分配权值,作为所述类型任务的能效模型; 当所述计算机集群处理新的所述类型的任务时,直接调用所述能效模型进行任务调度。
3.根据权利要求2所述的方法,其特征在于,保存所述任务的类型和对应各服务器节点的任务分配权值,作为所述类型任务的能效模型的步骤进一步包括: 在所述能效模型建立之后,通过处理新的相同类型任务对所述能效模型进行闭环调整和修正。
4.根据权利要求1至3任一所述的方法,其特征在于,采集所述各服务器节点的温度和能耗信息的步骤包括: 通过所述各服务器节点的智能型平台管理接口获取各服务器节点的功耗和温度信息。
5.根据权利要求1至3任一所述的方法,其特征在于,根据所述功耗和进风口温度以及所述任务的性能指标,计算所述各服务器节点的每瓦特性能的步骤包括: 根据所述任务的类型、所述任务的性能指标和所述服务器温度计算得到各服务器节点的功耗; 根据所述各服务器节点的功耗和所述任务的性能指标计算得到各服务器节点的每瓦特性能。
6.根据权利要求1至3任一所述的方法,其特征在于,根据所述各服务器节点的任务分配权值将所述任务分配给各服务器节点,以使所述计算机集群总的功耗最低的步骤包括: 将所述任务分配给任务分配权值最大的服务器节点。
7.根据权利要求6所述的方法,其特征在于,所述方法还包括: 如果所述任务分配权值最大的服务器节点超过预设处理能力的阈值,则将所述任务分配给剩余的空闲服务器节点中任务分配权值最大的服务器节点。
8.根据权利要求1至3任一所述的方法,其特征在于,根据所述各服务器节点的任务分配权值将所述任务分配给各服务器节点,以使所述计算机集群总的功耗最低的步骤包括: 按照各服务器节点任务分配权值的比例将所述任务进行分配。
9.一种任务调度装置,应用于计算机集群,包括任务分配模块、采集模块、性能指标获取模块、能效计算模块、任务分配权值计算模块,其中, 所述任务分配模块,用于根据所述各服务器节点的任务分配权值将所述任务分配给各服务器节点; 所述采集模块,用于采集所述各服务器节点的温度和功耗信息;所述性能指标获取模块,用于获取所述各服务器节点运行的所述任务的性能指标;所述能效计算模块,用于根据所述功耗和温度信息以及所述任务的性能指标,计算所述各服务器节点的每瓦特性能; 所述任务分配权值计算模块,用于根据所述各服务器节点的每瓦特性能计算各服务器节点的任务分配权值。
10.根据权利要求9所述的装置,其特征在于, 所述装置还包括能效建模模块,用于保存所述任务的类型和对应各服务器节点的任务分配权值,作为所述类型任务的能效模型; 所述任务调度模块用于,当所述计算机集群处理新的所述类型的任务时,直接调用所述能效模型进行任务调度。
11.根据权利要求10所述的装置,其特征在于,能效建模模块进一步用于,在所述能效模型建立之后,通过处理新的同种类型任务对所述能效模型进行闭环调整和修正。
12.根据权利要求9至11任一所述的装置,其特征在于,所述采集模块用于,通过所述各服务器节点的智能型平台管理接口获取各服务器节点的功耗和温度信息。
13.根据权利要求9至11任一所述的装置,其特征在于,根据能效计算模块用于: 根据所述任务的类型、所述任务的性能指标和所述服务器进风口温度计算得到各服务器节点的功耗; 根据所述各服务器节点的功耗和所述任务的性能指标计算得到各服务器节点的每瓦特性能。
14.根据权利要求9至11任一所述的装置,其特征在于,所述任务分配模块用于:将所述任务分配给任务分配权值最大的服务器节点。
15.根据权利要求14所述的装置,其特征在于,所述任务分配模块还用于: 如果所述任务分配权值最大的服务器节点超过预设处理能力的阈值,则将所述任务分配给剩余的空闲服务器节点中任务分配权值最大的服务器节点。
16.根据权利要求9至11任一所述的装置,其特征在于,所述任务分配模块用于: 按照各服务器节点任务分配权值的比例将所述任务进行分配。
17.一种服务器集群,包括多个服务器节点,其特征在于,还包括如权利要求9至16任一所述的任务调度装置。
【文档编号】G06F9/50GK103902379SQ201210573053
【公开日】2014年7月2日 申请日期:2012年12月25日 优先权日:2012年12月25日
【发明者】唐华斌 申请人:中国移动通信集团公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1