本发明涉及请求调度技术领域,尤其是涉及一种云数据中心的请求调度方法和装置。
背景技术:
随着云计算的推广,很多云服务被发布在互联网上。许多大规模的数据中心被开发来供应云服务。云服务供应商提供了各式各样的服务,并且建立了分布在不同地理位置的云数据中心。这些云数据中心承载了大量的服务,例如,视频播放,社交网,网页搜索等。为了支持这些云计算中心的运行,每年都有大量的能源被消耗。据报道显示,一个平均的谷歌搜索需要消耗0.0003kWh的电量,那么一年就会耗费超过32,000,000kWh的电量。
为了降低能源消费,有两种途径:第一种是降低能源的消耗;第二种是利用能源价格的差异,多使用价格低的能源。除了电量消费外,云服务供应商有时还需要支付CO2排放税。因此,如何在云数据中心中,高效地调度请求以降低消费,是个非常重要的问题。
技术实现要素:
针对以上缺陷,本发明提供一种云数据中心的请求调度方法和装置,能够实现收益与队列长度之间的折中。
第一方面,本发明提供的云数据中心的请求调度方法包括在每一个时间戳内执行以下步骤:
S1、在该时间戳t的开始时刻,获取每个数据中心中服务器的队列长度;
S2、计算每一数据中心的第一目标函数值,并将该时间戳t中所有的服务请求分发至第一目标函数值最大的数据中心;第一目标函数为Obj1=Vri(t)-Qi(t),V为收益和服务质量的折中参数,ri(t)为在时间戳t中第i个数据中心的每一个请求的收益,Qi(t)为在该时间戳t中第i个数据中心中服务器的队列长度;
S3、将第二目标函数值初始化为负无穷大;
S4、将每一个数据中心的运行频率集合中的每一运行频率作为当前运行频率,通过执行以下步骤S41、S42和S43确定该数据中心的最优运行频率和最优运行数量;
S41、计算该当前运行频率对应的第一变量的值,若该第一变量的值大于0,则将该数据中心内服务器的当前运行数量赋值为该数据中心的服务器总数量,否则将所述当前运行数量赋值为0;
S42、计算该当前运行频率下的第二变量的值;
S43、若第二变量的值大于当前的第二目标函数值,则将当前的第二目标函数值赋值为第二变量的值,将最优运行频率赋值为当前运行频率,及将最优运行数量赋值为所述当前运行数量;
S5、针对每一个数据中心,将在S4所确定的最优运行数量的服务器开启,并将开启的各个服务器的运行频率调至S4所确定的最优运行频率;
其中,第一变量为:
式中,Hi(t)为第一变量,pi(t)为在时间戳t内第i个数据中心的每一台服务器的功耗,PUEi为在时间戳t内第i个数据中心的总功率与服务器总功率的比值,τ为时间戳t的长度;li'(t)为第i个数据中心在当前运行频率μi(t)时在时间戳t内处理的服务请求的数量,ρi(t)为第i个数据中心在时间戳t内的二氧化碳平均排放率,为第i个数据中心在时间戳t内的单位电价,γi(t)为第i个数据中心在时间戳t内的二氧化碳税率;
其中,第二变量为gij(t)=Hi(t)·ni(t);
式中,ni(t)为第i个数据中心中服务器的当前运行数量。
可选的,第二目标函数为:
式中,Obj2为第二目标函数值,Ei(t)为第i个数据中心在时间戳t内的总能耗。
可选的,采用下式计算第i个数据中心在时间戳t内的总能耗Ei(t):
式中,为静态功耗,为动态功耗,θi、αi为常量。
可选的,采用下式计算为第i个数据中心在时间戳t内的二氧化碳平均排放率ρi(t):
式中,βj为第j种能源的二氧化碳排放率,Zij(t)为时间戳t内第i个数据中心的第j种能源的能耗量。
可选的,采用下式计算第i个数据中心在服务器运行频率为μi(t)时在时间戳t内处理的服务请求的数量li'(t):
式中,li'(t)为第i个数据中心在服务器运行频率为时在时间戳t内处理的服务请求的数量。
第二方面,本发明提供的云数据中心的请求调度装置包括在每一个时间戳内运行的队列长度获取模块、请求分发模块、初始化模块、目标量确定模块和服务器调控模块,其中:
所述队列长度获取模块用于在该时间戳t的开始时刻,获取每个数据中心中服务器的队列长度;
所述请求分发模块用于计算每一数据中心的第一目标函数值,并将该时间戳t中所有的服务请求分发至第一目标函数值最大的数据中心;第一目标函数为Obj1=Vri(t)-Qi(t),V为收益和服务质量的折中参数,ri(t)为在时间戳t中第i个数据中心的每一个请求的收益,Qi(t)为在该时间戳t中第i个数据中心中服务器的队列长度;
所述初始化模块用于将第二目标函数值初始化为负无穷大;
所述目标量确定模块用于将每一个数据中心的运行频率集合中的每一运行频率作为当前运行频率,通过执行以下步骤S41、S42和S43确定该数据中心的最优运行频率和最优运行数量;
S41、计算该当前运行频率对应的第一变量的值,若该第一变量的值大于0,则将该数据中心内服务器的当前运行数量赋值为该数据中心的服务器总数量,否则将所述当前运行数量赋值为0;
S42、计算该当前运行频率下的第二变量的值;
S43、若第二变量的值大于当前的第二目标函数值,则将当前的第二目标函数值赋值为第二变量的值,将最优运行频率赋值为当前运行频率,及将最优运行数量赋值为所述当前运行数量;
所述服务器调控模块用于针对每一个数据中心,将在所述目标量确定模块所确定的最优运行数量的服务器开启,并将开启的各个服务器的运行频率调至所述目标量确定模块所确定的最优运行频率;
其中,第一变量为:
式中,Hi(t)为第一变量,pi(t)为在时间戳t内第i个数据中心的每一台服务器的功耗,PUEi为在时间戳t内第i个数据中心的总功率与服务器总功率的比值,τ为时间戳t的长度;li'(t)为第i个数据中心在当前运行频率μi(t)时在时间戳t内处理的服务请求的数量,ρi(t)为第i个数据中心在时间戳t内的二氧化碳平均排放率,为第i个数据中心在时间戳t内的单位电价,γi(t)为第i个数据中心在时间戳t内的二氧化碳税率;
其中,第二变量为gij(t)=Hi(t)·ni(t);
式中,ni(t)为第i个数据中心中服务器的当前运行数量。
可选的,所述初始化模块中采用的第二目标函数为:
式中,Obj2为第二目标函数值,Ei(t)为第i个数据中心在时间戳t内的总能耗。
可选的,所述初始化模块采用下式计算第i个数据中心在时间戳t内的总能耗Ei(t):
式中,为静态功耗,为动态功耗,θi、αi为常量。
可选的,所述目标量确定模块采用下式计算为第i个数据中心在时间戳t内的二氧化碳平均排放率ρi(t):
式中,βj为第j种能源的二氧化碳排放率,Zij(t)为时间戳t内第i个数据中心的第j种能源的能耗量。
可选的,所述目标量确定模块采用下式计算第i个数据中心在服务器运行频率为μi(t)时在时间戳t内处理的服务请求的数量li'(t):
式中,li'(t)为第i个数据中心在服务器运行频率为时在时间戳t内处理的服务请求的数量。
本发明提供的云数据中心的请求调度方法和装置,首先根据第一目标函数查找第一函数值最大的数据中心,然后将该时间戳内的所有服务请求发送至该数据中心,再确定所有数据中心服务器的最优运行数量和最优运行频率,最后按照该最优运行数量和最优运行频率控制该数据中心的服务器的运行。由于在整个过程中,第一目标函数、第一变量中均存在折中参数V,考虑到服务质量、收益的这种情况,在增大系统效益的情况下,减小队列长度,实现系统效益与队列长度之间的折中。
附图说明
为了更清楚地说明本公开实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本公开的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些图获得其他的附图。
图1示出了本发明一实施例中云数据中心的请求调度方法的流程示意图。
具体实施方式
下面将结合本公开实施例中的附图,对本公开实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本公开中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本公开保护的范围。
假设云服务供应商部署m个分布式数据中心来处理服务请求,这些数据中心用集合I来表示。将系统建模成离散时间系统,每个时间戳的长度用τ来表示。对于每个时间戳t,总共的请求数目用A(t)来表示,用ai(t)来表示在时间戳t中分发到数据中心i的请求数目。那么:
用ni(t)来表示在时间戳t中数据中心i的运行的服务器的数量。用Ni表示数据中心i的总共的服务器的数量。那么,ni(t)≤Ni,用μi(t)代表时间戳t数据中心i服务器的运行频率,用Ui表示数据中心i服务器运行频率的集合。那么,μi(t)∈Ui,在时间戳t中数据中心i的每个请求的收益用ri(t)表示。那么时间戳t中数据中心i的总收益用Ri(t)=ri(t)ai(t)来表示。
服务器的功耗分为静态功耗和动态功耗。在时间戳t中数据中心i的每台服务器的功耗为:
式中,为静态功耗,为动态功耗,θi、αi为常量。为μi(t)的αi次幂。
数据中心很大一部分功耗还用于冷却设施,用PUE表示总功耗与服务器功耗的比值,对数据中心,PUE是常数值。那么,在时间戳t中数据中心i的总能耗为:
用表示时间戳t中数据中心i的单位电价,那么时间戳t中数据中心i的总能量消费可以用表示。用βj(in Kg/mWh)表示第j种能源的CO2排放率,那么在时间戳t中数据中心i的平均CO2排放率可以表示为:
其中,zij(t)表示数据中心i的第j种能源的能耗量。
用γi表示数据中心i的CO2税率(in$/Kg),那么,在时间戳t中数据中心i的CO2税是Ei(t)ρi(t)γi,因此服务供应商的总效益表示为:
长期时间的平均效益最大化可以表示为
Little公式显示,排队延迟与队长成正比关系。因此调度方法考虑降低队列长度。用Qi(t)表示时间戳t中数据中心i的队列长度,用li表示数据中心i的服务器运行在频率时在t时长内能处理的请求数目,则在μi(t)的频率时能处理的请求数目li'(t)是:
综上,综合能量效率、CO2税费与服务质量,本发明解决在云数据中心的请求调度中,最大化效益同时减小队列长度的问题。
为此,本发明提供一种云数据中心的请求调度方法,如图1所示,该方法包括在每一个时间戳内执行以下步骤:
S1、在该时间戳t的开始时刻,获取每个数据中心中服务器的队列长度;
S2、计算每一数据中心的第一目标函数值,并将该时间戳t中所有的服务请求分发至第一目标函数值最大的数据中心;第一目标函数为Obj1=Vri(t)-Qi(t),Obj1为第一目标函数值,V为收益和服务质量的折中参数,ri(t)为在时间戳t中第i个数据中心的每一个请求的收益,Qi(t)为在该时间戳t中第i个数据中心中服务器的队列长度;
S3、将第二目标函数值初始化为负无穷大;
S4、将每一个数据中心的运行频率集合中的每一运行频率作为当前运行频率,通过执行以下步骤S41、S42和S43确定该数据中心的最优运行频率和最优运行数量;
S41、计算该当前运行频率对应的第一变量的值,若该第一变量的值大于0,则将该数据中心内服务器的当前运行数量赋值为该数据中心的服务器总数量,否则将所述当前运行数量赋值为0;
S42、计算该当前运行频率下的第二变量的值;
S43、若第二变量的值大于当前的第二目标函数值,则将当前的第二目标函数值赋值为第二变量的值,将最优运行频率赋值为当前运行频率,及将最优运行数量赋值为所述当前运行数量;
S5、针对每一个数据中心,将在S4所确定的最优运行数量的服务器开启,并将开启的各个服务器的运行频率调至S4所确定的最优运行频率;
其中,第一变量为:
式中,Hi(t)为第一变量,pi(t)为在时间戳t内第i个数据中心的每一台服务器的功耗,PUEi为在时间戳t内第i个数据中心的总功率与服务器总功率的比值,τ为时间戳t的长度;li'(t)为第i个数据中心在当前运行频率μi(t)时在时间戳t内处理的服务请求的数量,ρi(t)为第i个数据中心在时间戳t内的二氧化碳平均排放率,为第i个数据中心在时间戳t内的单位电价,γi(t)为第i个数据中心在时间戳t内的二氧化碳税率;
其中,第二变量为gij(t)=Hi(t)·ni(t);
式中,ni(t)为第i个数据中心中服务器的当前运行数量。
本发明提供的请求调度方法,首先根据第一目标函数查找第一函数值最大的数据中心,然后将该时间戳内的所有服务请求发送至该数据中心。虽然在当前时间戳内没有分配服务请求给其他的数据中心,但是并不代表其他数据中心内没有队列,因为有可能该其他数据中心内还存在之前时间戳分配的服务请求,因此接下来针对每一个数据中心,确定最优运行数量和最优运行频率,最后按照该最优运行数量和最优运行频率控制该数据中心的服务器的运行。由于在整个过程中,第一目标函数、第一变量中均存在参数V,考虑到服务质量、收益的这种情况,在增大系统效益的情况下,减小队列长度,实现系统效益与队列长度之间的折中。
可理解的是,本发明提出在线请求调度方法,不需对请求到达、电价进行假设或预测,能够实时地根据当前状态做出请求分发、服务器管理的调度决策。本发明提出的调度方法为分布式调度方法,对云数据中心可以并行进行调度管理,极大提高运行效率,降低复杂度。
在具体实施时,步骤S2可以采用以下程序实现:
其中,i*为第一目标函数值最大的数据中心的标号,I为数据中心标号的集合。
在具体实施时,可以采用以下程序实现步骤S3:
其中,Ui为各个运行频率的集合,Hi(t)为第一变量,Ni为第i个数据中心中服务器的总数量,gij(t)为第二变量,maxμi(t)、maxni(t)均为中间值,μi'(t)为最优运行频率,ni'(t)为最优运行数量。
可理解的是,步骤S3实际上是求解最优运行频率和最优运行数量,求解过程为对运行频率ui(t)∈Ui进行枚举,对于每一个给定的运行频率ui(t),确定该数据中心的开机数量,然后比较不同频率下的第二目标函数值,选取第二目标函数值最优的结果,那么这个最优结果对应的频率及服务器数量,就是服务器调度的结果。
在具体实施时,第二目标函数可以为:
式中,Obj2为第二目标函数值,ni(t)为第i个数据中心运行的服务器数量,μi(t)为第i个数据中心服务器的运行频率,li'(t)为第i个数据中心在服务器运行频率为μi(t)时在时间戳t内处理的服务请求的数量,Ei(t)为第i个数据中心在时间戳t内的总能耗,为第i个数据中心在时间戳t内的单位电价,ρi(t)为第i个数据中心在时间戳t内的二氧化碳平均排放率,γi(t)第i个数据中心在时间戳t内的二氧化碳税率。
上式中,考虑到服务器的平均总功耗(数据中心的功耗不仅有服务器的功耗,还有一部分用于冷却设施,将其平均至每一条服务器上,即平均总功耗)、二氧化碳税等因素,提高数据中心总能耗的计算准确度。
在具体实施时,可以采用下式计算为第i个数据中心在时间戳t内的二氧化碳平均排放率ρi(t):
式中,βj为第j种能源的二氧化碳排放率,Zij(t)为时间戳t内第i个数据中心的第j种能源的能耗量。
上式中,考虑到各种能源的二氧化碳排放情况,进一步提高数据中心总能耗的计算准确度。
在具体实施时,可以采用下式计算第i个数据中心在时间戳t内的总能耗Ei(t):
式中,psi为静态功耗,为动态功耗,θi、αi为常量。为μi(t)的αi次幂。
在具体实施时,可以采用下式计算第i个数据中心在服务器运行频率为μi(t)时在时间戳t内处理的服务请求的数量li'(t):
式中,li'(t)为第i个数据中心在服务器运行频率为时在时间戳t内处理的服务请求的数量。
基于相同的发明构思,本发明还提供一种云数据中心的请求调度装置,该装置包括在每一个时间戳内运行的队列长度获取模块、请求分发模块、初始化模块、目标量确定模块和服务器调控模块,其中:
所述队列长度获取模块用于在该时间戳t的开始时刻,获取每个数据中心中服务器的队列长度;
所述请求分发模块用于计算每一数据中心的第一目标函数值,并将该时间戳t中所有的服务请求分发至第一目标函数值最大的数据中心;第一目标函数为Obj1=Vri(t)-Qi(t),V为收益和服务质量的折中参数,ri(t)为在时间戳t中第i个数据中心的每一个请求的收益,Qi(t)为在该时间戳t中第i个数据中心中服务器的队列长度;
所述初始化模块用于将第二目标函数值初始化为负无穷大;
所述目标量确定模块用于将将每一个数据中心的运行频率集合中的每一运行频率作为当前运行频率,通过执行以下步骤S41、S42和S43确定该数据中心的最优运行频率和最优运行数量;
S41、计算该当前运行频率对应的第一变量的值,若该第一变量的值大于0,则将该数据中心内服务器的当前运行数量赋值为该数据中心的服务器总数量,否则将所述当前运行数量赋值为0;
S42、计算该当前运行频率下的第二变量的值;
S43、若第二变量的值大于当前的第二目标函数值,则将当前的第二目标函数值赋值为第二变量的值,将最优运行频率赋值为当前运行频率,及将最优运行数量赋值为所述当前运行数量;
所述服务器调控模块用于针对每一个数据中心,将在所述目标量确定模块所确定的最优运行数量的服务器开启,并将开启的各个服务器的运行频率调至所述目标量确定模块所确定的最优运行频率;
其中,第一变量为:
式中,Hi(t)为第一变量,pi(t)为在时间戳t内第i个数据中心的每一台服务器的功耗,PUEi为在时间戳t内第i个数据中心的总功率与服务器总功率的比值,τ为时间戳t的长度;li'(t)为第i个数据中心在当前运行频率μi(t)时在时间戳t内处理的服务请求的数量,ρi(t)为第i个数据中心在时间戳t内的二氧化碳平均排放率,为第i个数据中心在时间戳t内的单位电价,γi(t)为第i个数据中心在时间戳t内的二氧化碳税率;
其中,第二变量为gij(t)=Hi(t)·ni(t);
式中,ni(t)为第i个数据中心中服务器的当前运行数量。
可选的,所述初始化模块中采用的第二目标函数为:
式中,Obj2为第二目标函数值,Ei(t)为第i个数据中心在时间戳t内的总能耗。
可选的,所述初始化模块采用下式计算第i个数据中心在时间戳t内的总能耗Ei(t):
式中,为静态功耗,为动态功耗,θi、αi为常量。为μi(t)的αi次幂。
可选的,所述目标量确定模块采用下式计算为第i个数据中心在时间戳t内的二氧化碳平均排放率ρi(t):
式中,βj为第j种能源的二氧化碳排放率,Zij(t)为时间戳t内第i个数据中心的第j种能源的能耗量。
可选的,所述目标量确定模块采用下式计算第i个数据中心在服务器运行频率为μi(t)时在时间戳t内处理的服务请求的数量li'(t):
式中,li'(t)为第i个数据中心在服务器运行频率为时在时间戳t内处理的服务请求的数量。
本发明提供的云数据中心的请求调度装置为本发明提供的云数据中心的请求调度方法的功能架构模块,其有关内容的解释、有益效果等内容请参考云数据中心的请求调度方法中的相应内容,这里不再赘述。
本发明的说明书中,说明了大量具体细节。然而,能够理解,本发明的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。
以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解;其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。