本发明涉及通信技术领域,具体涉及一种任务分配方法及装置。
背景技术:
数据中心作为云计算技术的支撑和核心,是数据集中存储和管理的中心。云数据中心是云计算处理任务的核心,云计算将计算任务分布在大量计算节点组成的数据中心上进行处理,为上层的各种应用按需提供计算能力、存储空间和信息服务。随着云计算技术的发展,数据中心作为其计算和存储的核心在运维管理方面也遇到了诸多问题和挑战,如资源利用率低下、能耗成本高昂、大规模计算节点的广泛分布、物理与虚拟资源高效融合的复杂性、云应用的多样性、应用请求的实时多变性等,均为云计算资源分配带来了困难。高效的云计算资源分配机制是云计算资源管理的核心,如何将资源合理地提供给云用户实现经济收益的优化,并在数据中心内部实现资源成本的节省,降低服务器能耗,实现物理资源与虚拟资源的有效融合,成为虚拟化数据中心有待解决的关键问题。
现有的数据中心任务分配方案主要是根据集群的当前负载情况和集群内物理服务器的运行成本,以满足当前任务需要的集群内开启的物理服务器为最少为原则分配任务,并未考量服务器的开启成本和关闭成本,使得任务分配不合理。
因此,亟需一种任务分配方案以解决上述问题。
技术实现要素:
本发明针对现有技术中存在的上述不足,提供一种任务分配方法及装置,用以部分解决任务分配不合理的问题。
本发明为解决上述技术问题,采用如下技术方案:
本发明提供一种任务分配方法,包括:当分配周期到达时,确定资源能力满足本分配周期内待处理任务量的服务器集群;
计算所述各服务器集群处理所述待处理任务量的成本,所述处理所述待处理任务量的成本包括:服务器的运行成本和服务器的开启成本,或者,服务器的运行成本和服务器的关闭成本;
选择处理所述待处理任务量的成本最低的服务器集群,并将本分配周期内的待处理任务分配给选择出的服务器集群。
优选的,所述确定资源能力满足本分配周期内待处理任务量的服务器集群,具体包括:
根据预设的本分配周期待处理任务量和预设的各服务器集群的资源提供能力,计算本分配周期各服务器集群内运行的服务器的最小数量,其中,j为服务器集群标识;
将本分配周期各服务器集群内运行的服务器的数量Zjt与相比较,确定的服务器集群,所述确定出的服务器集群为资源能力满足本分配周期内待处理任务量的服务器集群。
优选的,所述计算所述各服务器集群处理所述待处理任务量的成本,具体包括:
获取前一分配周期各服务器集群内运行的服务器的数量Zj(t-1),将Zjt与Zj(t-1)相比较;
若Zjt>Zj(t-1),则计算各服务器集群在本分配周期开启服务器的数量,计算各服务器集群开启一台服务器的成本,并根据预设的各服务器集群内一台服务器的运行成本、所述本分配周期各服务器集群内运行的服务器的数量、各服务器集群开启一台服务器的成本和各服务器集群在本分配周期开启服务器的数量,计算所述各服务器集群处理所述待处理任务量的成本。
进一步的,所述任务分配方法还包括:
若Zjt<Zj(t-1),则计算各服务器集群在本分配周期关闭服务器的数量,并计算各服务器集群关闭一台服务器的成本;
根据预设的各服务器集群内一台服务器的运行成本、所述本分配周期各服务器集群内运行的服务器的数量、各服务器集群关闭一台服务器的成本和各服务器集群在本分配周期关闭服务器的数量,计算所述各服务器集群处理所述待处理任务量的成本。
优选的,所述计算各服务器集群开启一台服务器的成本,具体包括:根据各服务器集群内开启一台服务器产生的启动电力值和所述服务器集群内开启一台服务器产生的物理折旧,计算所述服务器集群开启一台服务器的成本;
所述计算各服务器集群关闭一台服务器的成本,具体包括:根据各服务器集群内关闭一台服务器产生的启动电力值和所述服务器集群内关闭一台服务器产生的物理折旧,计算所述服务器集群关闭一台服务器的成本。
本发明还提供一种服务器,所述服务器包括:第一筛选模块、成本计算模块、第二筛选模块和任务分配模块;
所述第一筛选模块用于,当分配周期到达时,确定资源能力满足本分配周期内待处理任务量的服务器集群;
所述成本计算模块用于,计算所述各服务器集群处理所述待处理任务量的成本,所述处理所述待处理任务量的成本包括:服务器的运行成本和服务器的开启成本,或者,服务器的运行成本和服务器的关闭成本;
所述第二筛选模块用于,选择处理所述待处理任务量的成本最低的服务器集群;
所述任务分配模块用于,将本分配周期内的待处理任务分配给选择出的服务器集群。
优选的,所述第一筛选模块具体用于,根据预设的本分配周期待处理任务量和预设的各服务器集群的资源提供能力,计算本分配周期各服务器集群内运行的服务器的最小数量,其中,j为服务器集群标识;
将本分配周期各服务器集群内运行的服务器的数量Zjt与相比较,确定的服务器集群,所述确定出的服务器集群为资源能力满足本分配周期内待处理任务量的服务器集群。
优选的,所述成本计算模块具体用于,获取前一分配周期各服务器集群内运行的服务器的数量Zj(t-1),将Zjt与Zj(t-1)相比较;当Zjt>Zj(t-1)时,计算各服务器集群在本分配周期开启服务器的数量,计算各服务器集群开启一台服务器的成本,并根据预设的各服务器集群内一台服务器的运行成本、所述本分配周期各服务器集群内运行的服务器的数量、各服务器集群开启一台服务器的成本和各服务器集群在本分配周期开启服务器的数量,计算所述各服务器集群处理所述待处理任务量的成本。
进一步的,所述成本计算模块还用于,当Zjt<Zj(t-1)时,计算各服务器集群在本分配周期关闭服务器的数量,并计算各服务器集群关闭一台服务器的成本;根据预设的各服务器集群内一台服务器的运行成本、所述本分配周期各服务器集群内运行的服务器的数量、各服务器集群关闭一台服务器的成本和各服务器集群在本分配周期关闭服务器的数量,计算所述各服务器集群处理所述待处理任务量的成本。
优选的,所述成本计算模块具体用于,根据各服务器集群内开启一台服务器产生的启动电力值和所述服务器集群内开启一台服务器产生的物理折旧,计算所述服务器集群开启一台服务器的成本;或者,根据各服务器集群内关闭一台服务器产生的启动电力值和所述服务器集群内关闭一台服务器产生的物理折旧,计算所述服务器集群关闭一台服务器的成本。
本发明通过在具有处理待处理任务量的资源能力的服务器集群中,选择处理所述待处理任务量成本最低的服务器集群,并将待处理任务分配给选择出的服务器集群,本申请不是单纯将任务分配给开启服务器数量最少的服务器集群,而是将服务器开启数量、服务器运行成本、以及服务器开启成本或关闭成本进行综合考量,在保证虚拟机聚集的基础上,能够更准确地进行资源控制,使得任务分配更为合理,实现节能降耗。
附图说明
图1为本发明实施例提供的任务分配流程图之一;
图2为本发明实施例提供的任务分配流程图之二;
图3为本发明实施例提供的任务分配服务器的结构示意图。
具体实施方式
下面将结合本发明中的附图,对本发明中的技术方案进行清楚、完整的描述,显然,所描述的实施例是本发明的一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明提供一种任务分配方案,综合考虑了服务器的运行成本、开启成本和关闭成本,对实时动态工作负载进行资源成本最小化的任务分配。
数据中心内预设有用于分配待处理业务的分配周期,在本发明实施例中,待处理任务的到达周期是5分钟,因此,可以将分配周期设置为5分钟。数据中心按照分配周期计算满足当前新到达任务与当前活动的任务的最小资源量,并计算各服务器集群处理待处理任务量(即新到达任务与当前活动的任务)的成本,用最小的资源成本来处理当前的任务。
目前,数据中心通常采用虚拟化技术,虚拟机是资源调度和处理的基本单位。为虚拟机分配实时动态到达数据中心的工作负载是任务分配要解决的主要问题。
在本发明实施例中,数据中心包括R个服务器集群,各服务器集群以j表示,j=(1,2……,R),R为大于或等于2的整数。每个服务器集群内包括多台服务器。
以下结合图1,对本发明的任务分配流程进行详细说明。
如图1所示,所述任务分配流程包括以下步骤:
步骤101,当分配周期到达时,确定资源能力满足本分配周期内待处理任务量的服务器集群。
具体的,资源能力满足本分配周期内待处理任务量的服务器集群是指,本分配周期各服务器集群内运行的服务器的数量大于或等于资源能力能够满足所述待处理任务量且运行的服务器数量最小的服务器集群。
步骤102,计算各服务器集群处理所述待处理任务量的成本。
具体的,处理所述待处理任务量的成本包括:服务器的运行成本和服务器的开启成本,或者,服务器的运行成本和服务器的关闭成本。
通过比较各服务器集群在本分配周期和前一分配周期的运行的服务器的数量,确定各服务器集群为了能够处理所述待处理任务量,在本分配周期内是需要开启服务器还是关闭服务器。对于需要开启服务器的服务器集群来说,处理所述待处理任务量的成本包括:服务器的运行成本和服务器的开启成本。对于需要关闭服务器的服务器集群来说,处理所述待处理任务量的成本包括:服务器的运行成本和服务器的关闭成本。需要说明的是,若服务器集群在本分配周期和前一分配周期的运行的服务器的数量相等,说明该服务器集群无需开启或关闭服务器,则理所述待处理任务量的成本即为服务器的运行成本。
步骤103,选择处理所述待处理任务量的成本最低的服务器集群。
步骤104,将本分配周期内的待处理任务分配给选择出的服务器集群。
具体的,将本分配周期内的待处理任务分配给步骤103中选择出的处理所述待处理任务量的成本最低的服务器集群。
优选的,采用LRFU(Last-Released-First-Used,最后释放最先指派)分配方法对当前最新释放了的虚拟机分配最新到达的工作负载。
通过步骤101-104可以看出,本发明通过在具有处理待处理任务量的资源能力的服务器集群中,选择处理所述待处理任务量成本最低的服务器集群,并将待处理任务分配给选择出的服务器集群,本申请不是单纯将任务分配给开启服务器数量最少的服务器集群,而是将服务器开启数量、服务器运行成本、以及服务器开启成本或关闭成本进行综合考量,在保证虚拟机聚集的基础上,能够更准确地进行资源控制,使得任务分配更为合理,实现节能降耗。
以下结合图2,对本发明的任务分配方案进行详细描述。如图2所示,该任务分配流程包括以下步骤:
步骤201,根据本周期待处理任务量dt和各服务器集群的资源提供能力Vi,计算本分配周期各服务器集群内运行的服务器的最小数量
具体的,本分配周期待处理任务量dt是动态实时到达数据中心的,具有实时动态的特性。待处理任务量是可以进行预测的,目前已经有成熟的方案可以对待处理任务量进行预测,在此不再赘述。
数据中心内预设有各服务器的资源提供能力Vi,服务器集群内的服务器以i表示,而各服务器集群内服务器的数量已知,因此可以通过计算得到各服务器集群的资源提供能力Vj,j=(1,2……,R)。
本分配周期各服务器集群内运行的服务器的最小数量可以按照以下公式计算:
步骤202,将本分配周期各服务器集群内运行的服务器的数量Zjt与相比较,确定的服务器集群。
具体的,只要保证服务器集群内运行的服务器的数量大于该服务器集群的资源能力即可满足本分配周期内待处理任务量,也就是说,的服务器集群即为资源能力满足本分配周期内待处理任务量的服务器集群。
通过上述步骤201-202即可确定出资源能力满足本分配周期内待处理任务量的服务器集群。
步骤203,获取前一分配周期各服务器集群内运行的服务器的数量Zj(t-1)。
步骤204,将Zjt与Zj(t-1)相比较,若Zjt>Zj(t-1),则执行步骤205;若Zjt<Zj(t-1),则执行步骤207;若Zjt=Zj(t-1),则执行步骤209。
具体的,若Zjt>Zj(t-1),即服务器集群j在本分配周期内运行的服务器的数量大于前一分配周期内运行的服务器的数量,说明该服务器集群j需要开启服务器,那么在计算处理待处理任务量的成本时,不但要计算服务器的运行成本,还要计算服务器的开启成本(即执行步骤205及206)。
若Zjt<Zj(t-1),即服务器集群j在本分配周期内运行的服务器的数量小于前一分配周期内运行的服务器的数量,说明该服务器集群j需要关闭服务器,那么在计算处理所述待处理任务量的成本时,不但要计算服务器的运行成本,还要计算服务器的关闭成本(即执行步骤207及208)。
若Zjt=Zj(t-1),即服务器集群j在本分配周期内运行的服务器的数量等于前一分配周期内运行的服务器的数量,说明该服务器集群j既不需要开启服务器也不需要关闭服务器,那么在计算处理所述待处理任务量的成本时,只需计算服务器的运行成本即可(即执行步骤209)。
步骤205,计算各服务器集群在本分配周期开启服务器的数量并计算各服务器集群开启一台服务器的成本
具体的,为各服务器集群在本分配周期内运行的服务器的数量与在前一分配周期内运行的服务器的数量之差,即
各服务器集群开启一台服务器的成本可以按照以下公式(1)计算:
其中,为服务器集群j内开启一台服务器产生的启动电力值,为常数;为服务器集群j内开启一台服务器产生的物理折旧,为负数。
步骤206,根据预设的各服务器集群内一台服务器的运行成本Cj、所述本分配周期各服务器集群内运行的服务器的数量Zjt、各服务器集群开启一台服务器的成本和各服务器集群在本分配周期开启服务器的数量计算所述各服务器集群处理所述待处理任务量的成本P。
具体的,按照以下公式(2)计算处理所述任务需求量的成本P:
其中,Cj为服务器集群j内一台服务器的运行成本,Cj为常数;Zjt为服务器集群j在本分配周期运行的服务器的数量;为服务器集群j在本分配周期开启服务器的数量;为服务器集群j开启一台服务器的成本。
Cj*Zjt为服务器集群j中服务器的运行成本,为服务器集群j中服务器的开启成本。
步骤207,计算各服务器集群在本分配周期关闭服务器的数量并计算各服务器集群关闭一台服务器的成本
具体的,为各服务器集群在前一分配周期内运行的服务器的数量与在本分配周期内运行的服务器的数量之差,即
各服务器集群开启一台服务器的成本可以按照以下公式(3)计算:
其中,为服务器集群j内关闭一台服务器产生的关闭电力值,为常数;为服务器集群j内关闭一台服务器产生的物理折旧,为负数。
步骤208,根据预设的各服务器集群内一台服务器的运行成本Cj、所述本分配周期各服务器集群内运行的服务器的数量Zjt、各服务器集群关闭一台服务器的成本和各服务器集群在本分配周期关闭服务器的数量计算所述各服务器集群处理所述待处理任务量的成本P。
具体的,按照以下公式(3)计算处理所述任务需求量的成本P:
其中,Cj为服务器集群j内一台服务器的运行成本,Cj为常数;Zjt为服务器集群j在本分配周期运行的服务器的数量;为服务器集群j在本分配周期关闭服务器的数量;为服务器集群j关闭一台服务器的成本。
Cj*Zjt为服务器集群j中服务器的运行成本,为服务器集群j中服务器的关闭成本。
步骤209,根据各服务器集群内一台服务器的运行成本Cj和所述本分配周期各服务器集群内运行的服务器的数量Zjt,计算所述各服务器集群处理所述待处理任务量的成本。
具体的,按照以下公式(5)计算处理所述任务需求量的成本P:
P=Cj*Zjt (5)
其中,Cj为服务器集群j内一台服务器的运行成本,Cj为常数;Zjt为服务器集群j在本分配周期运行的服务器的数量。
由于开启、关闭一台服务器会产生开启或关闭操作的电力成本(包括服务器的启动电力消耗、关闭电力消耗等),同时,由于开启或关闭操作会带来电压的变化,对大型物理服务器而言,开启或关闭服务器的操作会产生一定的物理损耗,加速物理服务器的折旧。本发明将开启、关闭服务器的成本作为任务分配的考虑因素,更加细致的对资源分配过程进行了度量。现有研究通常将开启、关闭服务器的成本忽略不计,在长期的资源分配过程中,开启、关闭服务器所产生的能耗以及物理折旧也是一个不容忽视的资源分配因素,因此,现有研究存在不准确之处。本发明对资源分配过程中所产生的电力损耗和物理折旧进行了准确度量,能够更加准确地制定任务分配方案,优化资源分配过程,节省数据中心处理任务的成本。
需要说明的是,本发明的任务分配方案可以适用于同构数据中心、异构数据中心和混合数据中心。
基于相同的技术构思,本发明实施例还提供一种服务器,如图3所示,该服务器可以包括:第一筛选模块31、成本计算模块32、第二筛选模块33和任务分配模块34。
第一筛选模块31用于,当分配周期到达时,确定资源能力满足本分配周期内待处理任务量的服务器集群。
成本计算模块32用于,计算所述各服务器集群处理所述待处理任务量的成本,所述处理所述待处理任务量的成本包括:服务器的运行成本和服务器的开启成本,或者,服务器的运行成本和服务器的关闭成本。
第二筛选模块33用于,选择处理所述待处理任务量的成本最低的服务器集群。
任务分配模块34用于,将本分配周期内的待处理任务分配给选择出的服务器集群。
优选的,第一筛选模块31具体用于,根据预设的本分配周期待处理任务量和预设的各服务器集群的资源提供能力,计算本分配周期各服务器集群内运行的服务器的最小数量其中,j为服务器集群标识;将本分配周期各服务器集群内运行的服务器的数量Zjt与相比较,确定的服务器集群,所述确定出的服务器集群为资源能力满足本分配周期内待处理任务量的服务器集群。
优选的,成本计算模块32具体用于,获取前一分配周期各服务器集群内运行的服务器的数量Zj(t-1),将Zjt与Zj(t-1)相比较;当Zjt>Zj(t-1)时,计算各服务器集群在本分配周期开启服务器的数量,计算各服务器集群开启一台服务器的成本,并根据预设的各服务器集群内一台服务器的运行成本、所述本分配周期各服务器集群内运行的服务器的数量、各服务器集群开启一台服务器的成本和各服务器集群在本分配周期开启服务器的数量,计算所述各服务器集群处理所述待处理任务量的成本。
进一步的,成本计算模块32还用于,当Zjt<Zj(t-1)时,计算各服务器集群在本分配周期关闭服务器的数量,并计算各服务器集群关闭一台服务器的成本;根据预设的各服务器集群内一台服务器的运行成本、所述本分配周期各服务器集群内运行的服务器的数量、各服务器集群关闭一台服务器的成本和各服务器集群在本分配周期关闭服务器的数量,计算所述各服务器集群处理所述待处理任务量的成本。
优选的,成本计算模块32具体用于,根据各服务器集群内开启一台服务器产生的启动电力值和所述服务器集群内开启一台服务器产生的物理折旧,计算所述服务器集群开启一台服务器的成本;或者,根据各服务器集群内关闭一台服务器产生的启动电力值和所述服务器集群内关闭一台服务器产生的物理折旧,计算所述服务器集群关闭一台服务器的成本。
可以理解的是,以上实施方式仅仅是为了说明本发明的原理而采用的示例性实施方式,然而本发明并不局限于此。对于本领域内的普通技术人员而言,在不脱离本发明的精神和实质的情况下,可以做出各种变型和改进,这些变型和改进也视为本发明的保护范围。