1.本发明涉及应用服务器集群能耗管理技术领域,尤其涉及一种基于主从优化的大规模应用服务器集群实时能耗优化方法。
背景技术:2.网络应用服务运营商通常是按峰值负载来部署应用服务器集群(简称集群)的规模,但平时运营时的负载通常远低于峰值负载并且是波动的,因此必须根据实际的负载状况动态优化集群中各服务器的部署(包括开关、cpu频率和承担负载)以进行节能,从而降低运营成本提升竞争力。
3.基于规划问题的集群能耗优化是一种常用的方法,其通过定义变量描述集群中各个服务器的部署,将集群能耗优化描述成规划问题,然后求解。已有的方法大体上可分为两种模式,一种针对单个服务器定义变量,将集群能耗优化描述成线性规划问题,并采用工具包进行精确求解。但当集群规模很大时,变量数目巨大,规划问题无法实时求解。另一种针对服务器型号定义变量,将集群能耗优化描述成非线性规划问题,然后采用贪婪算法或智能优化算法(例如花朵授粉算法或遗传算法等)求解。智能优化算法对目标函数的形式没有特别的要求,是通用的优化方法,这些智能优化求解算法没有充分根据问题的特点来进行设计,因而当应用于大规模集群时求解效率不太理想,无法保证优化的实时性。而贪婪算法的求解质量严重依赖于应用场景(包括服务器的负载和功率数据,以及集群负载等),通常求解质量较差。
技术实现要素:4.本发明实施例所要解决的技术问题在于,提供一种基于主从优化的大规模应用服务器集群实时能耗优化方法。可根据负载状况动态优化集群中各服务器的部署使得集群的能耗最小,尤其是当集群规模较大时,使得优化依然能够在线实时进行。
5.为了解决上述技术问题,本发明实施例提供了一种基于主从优化的大规模应用服务器集群实时能耗优化方法,包括步骤:针对每种服务器型号定义变量将集群能耗优化问题描述成一个主从优化问题,然后将预测的集群负载带入所述主从优化问题进行求解得到集群的优化部署,最后基于求得的集群优化部署调整各个服务器的开关、cpu频率和负载,其中,所述负载是指平均每秒承担的请求数量;所述服务器的cpu频率和负载之间的关系为,当第i种型号的服务器承担的负载为li时,其cpu在频率f
i,j
和f
i,j+1
之间切换,且工作在f
i,j
和f
i,j+1
上的时间分别占(l
i,j+1
-li)/(l
i,j+1
-l
i,j
)和(li-l
i,j
)/(l
i,j+1
-l
i,j
),其中,f
i,j
表示第i种服务器型号从低到高的第j个离散频率,l
i,j
表示第i种型号的服务器以100%的cpu利用率工作在f
i,j
时承担的负载,l
i,j
≤li≤l
i,j+1
;所述主从优化问题包括一个主优化问题和针对每种服务器型号的一个从优化问
题;所述主优化问题为型号间的优化,针对第i种服务器型号定义一个变量:承担的总负载hi,约束条件为h1+h2+
…
+hm=l,目标为所有服务器的总功率最小,其中,m为服务器型号的数量,l为预测的集群负载;所述从优化问题为型号内的优化,针对第i种服务器型号定义两个变量:服务器开启的数量ni和每台开启服务器承担的负载li,约束条件为nili=hi,目标为第i种型号服务器的总功率最小;所述主优化问题的求解算法在求解时以hi作为参数调用所述从优化问题的求解算法,所述从优化问题的求解算法将优化得到的最小目标函数值以及对应的ni和li返回给所述主优化问题的求解算法。
6.其中,所述从优化问题的求解算法还包括:采用枚举算法求解所述从优化问题,所述算法枚举第i种型号服务器的每对相邻离散频率构成的区间,计算对应的目标函数值,最后返回所有对应目标函数值中的最小值以及对应的ni和li;当枚举第i种型号服务器的第j个所述频率区间时,对应目标函数值的计算方法如下:首先计算t
i,j
=(l
i,j+1
p
i,j
-l
i,j
p
i,j+1
)/(l
i,j+1
-l
i,j
)-p
istandby
,如果t
i,j
》0,那么使用ni=ceil(hi/l
i,j+1
)计算目标函数值,否则使用ni=min{floor(hi/l
i,j
), ni}计算目标函数值,其中,p
i,j
表示第i种型号的服务器以100%的cpu利用率工作在f
i,j
时的功率,p
istandby
表示第i种型号的服务器待机时的功率,ni表示第i种型号服务器的数量,ceil()和floor()分别表示向上和向下取整,min{}表示取最小值。
7.其中,所述主优化问题的求解算法还包括:采用两次变异操作的差分进化算法求解所述主优化问题,所述算法去掉了传统差分进化算法中的修正操作和交叉操作,种群中的个体为(h1,h2,
…
,hm),其中,hi表示第i种服务器型号承担的总负载,m为服务器型号的数量。
8.其中,所述两次变异操作的差分进化算法的第一次变异操作包括步骤:采用de/rand/1/either-or变异策略产生一个变异个体,如果所产生变异个体的所有分量均没有越界,则返回该变异个体;否则,再次采用de/rand/1/either-or变异策略产生一个变异个体,如果所产生变异个体的所有分量均没有越界,则返回该变异个体;否则,基于启发式思想随机产生一个贪婪个体返回。
9.其中,所述两次变异操作的差分进化算法的第二次变异操作包括步骤:该变异操作以一定的概率实施;如果实施,则随机选择一个能耗效率低的服务器型号,将其承担的负载重新随机分配给能耗效率高的服务器型号。
10.实施本发明实施例,具有如下有益效果:本发明根据负载状况动态优化集群中各服务器的部署使得集群的能耗最小,各服务器的部署包括:开关状态、cpu频率和承担负载;让服务器cpu的频率在两个相邻的离散频率之间来回切换,以达到能等效工作在任意连续
频率上的效果,从而使得服务器始终满载运行;针对每种服务器型号定义变量,将应用服务器集群的能耗优化问题描述成一个主从优化问题,主优化问题为型号间的优化,从优化问题为型号内的优化,两个优化问题意义明确,便于求解;采用高效的枚举算法求解从优化问题,采用两次变异操作的差分进化算法求解主优化问题,求解效率高;将预测的集群负载带入主从优化问题进行求解得到集群的优化部署,基于求得的集群优化部署调整各服务器的部署;由于变量数目很少,优化问题描述合理,并且求解算法的效率很高,因而即使应用于大规模的集群,集群能耗优化问题依然能够实时求解。
附图说明
11.图1是本发明方法的流程示意图。
具体实施方式
12.为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明作进一步地详细描述。
13.如图1所示,本发明提供了一种基于主从优化的大规模应用服务器集群实时能耗优化方法,针对每种服务器型号定义变量将集群能耗优化问题描述成一个主从优化问题,然后将预测的集群负载带入所述主从优化问题进行求解得到集群的优化部署,最后基于求得的集群优化部署调整各个服务器的开关、cpu频率和负载,其中,所述负载是指平均每秒承担的请求数量;所述服务器的cpu频率和负载之间的关系为,当第i种型号的服务器承担的负载为li时,其cpu在频率f
i,j
和f
i,j+1
之间切换,且工作在f
i,j
和f
i,j+1
上的时间分别占(l
i,j+1
-li)/(l
i,j+1
-l
i,j
)和(li-l
i,j
)/(l
i,j+1
-l
i,j
),其中,f
i,j
表示第i种服务器型号从低到高的第j个离散频率,l
i,j
表示第i种型号的服务器以100%的cpu利用率工作在f
i,j
时承担的负载,l
i,j
≤li≤l
i,j+1
;所述主从优化问题包括一个主优化问题和针对每种服务器型号的一个从优化问题;所述主优化问题为型号间的优化,针对第i种服务器型号定义一个变量:承担的总负载hi,约束条件为h1+h2+
…
+hm=l,目标为所有服务器的总功率最小,其中,m为服务器型号的数量,l为预测的集群负载;所述从优化问题为型号内的优化,针对第i种服务器型号定义两个变量:服务器开启的数量ni和每台开启服务器承担的负载li,约束条件为nili=hi,目标为第i种型号服务器的总功率最小;所述主优化问题的求解算法在求解时以hi作为参数调用所述从优化问题的求解算法,所述从优化问题的求解算法将优化得到的最小目标函数值以及对应的ni和li返回给所述主优化问题的求解算法。
14.进一步地,所述从优化问题的求解算法进一步包括:采用枚举算法求解所述从优化问题,所述算法枚举第i种型号服务器的每对相邻离散频率构成的区间,计算对应的目标函数值,最后返回所有对应目标函数值中的最小值以及对应的ni和li;当枚举第i种型号服务器的第j个所述频率区间时,对应目标函数值的计算方法如
下:首先计算t
i,j
=(l
i,j+1
p
i,j
-l
i,j
p
i,j+1
)/(l
i,j+1
-l
i,j
)-p
istandby
,如果t
i,j
》0,那么使用ni=ceil(hi/l
i,j+1
)计算目标函数值,否则使用ni=min{floor(hi/l
i,j
), ni}计算目标函数值,其中,p
i,j
表示第i种型号的服务器以100%的cpu利用率工作在f
i,j
时的功率,p
istandby
表示第i种型号的服务器待机时的功率,ni表示第i种型号服务器的数量,ceil()和floor()分别表示向上和向下取整,min{}表示取最小值。
15.更进一步地,所述主优化问题的求解算法进一步包括:采用两次变异操作的差分进化算法求解所述主优化问题,所述算法去掉了传统差分进化算法中的修正操作和交叉操作,种群中的个体为(h1,h2,
…
,hm),其中,hi表示第i种服务器型号承担的总负载,m为服务器型号的数量。
16.更进一步地,所述两次变异操作中的第一次变异操作进一步包括:采用de/rand/1/either-or变异策略产生一个变异个体,如果所产生变异个体的所有分量均没有越界,则返回该变异个体;否则,再次采用de/rand/1/either-or变异策略产生一个变异个体,如果所产生变异个体的所有分量均没有越界,则返回该变异个体;否则,基于启发式思想随机产生一个贪婪个体返回。
17.更进一步地,所述两次变异操作中的第二次变异操作进一步包括:该变异操作以一定的概率实施;如果实施,则随机选择一个能耗效率低的服务器型号,将其承担的负载重新随机分配给能耗效率高的服务器型号。
18.上述集群能耗优化周期性地进行,每个优化周期结束时,首先预测下一个周期的集群负载,然后根据所预测的负载来调整各服务器的开关状态,cpu频率和承担负载,使得集群的总功率最小。
19.本发明具有以下优点:1)服务器满载运行。让服务器cpu的频率在两个相邻的离散频率之间来回切换,以达到能等效工作在任意连续频率上的效果,从而使得服务器始终满载运行。而已有的方法通常让服务器cpu工作在离散频率上,从而多数时候服务器的能力过剩,造成浪费。因而本发明中服务器的cpu工作模式更为高效节能。
20.2)能耗和负载模型较为准确。针对每对相邻的离散频率区间建立负载和功耗模型,而已有的方法通常针对整个频率区间较为粗糙地建立负载和功耗模型,本发明所构建的模型较为准确。
21.3)集群能耗优化问题能够在线实时求解。已有的基于规划问题的集群能耗优化方法,要么当集群规模很大时,规划变量数目巨大,规划问题难以实时求解,或者仅采用贪婪算法求解,无法求得高质量的解,又或者采用智能优化算法求解,但没有充分根据问题的特点来进行设计,因而当应用于大规模集群时求解效率不太理想。而本发明提供的方案,一是针对每种服务器型号定义变量,变量数目很少;二是根据集群能耗优化的特点,将其描述成主从优化问题,主优化问题为型号间的优化,从优化问题为型号内的优化,两个优化问题意义明确,便于求解;
三是针对从优化问题的特点,采用高效的枚举算法对其进行求解,目前主流cpu的离散频率数量不多于15个,因而枚举的开销非常小;四是针对主优化问题的特点,采用两次变异操作的差分进化算法对其进行求解,两次的变异操作中均引入了启发式思想,因而加快了进化过程的收敛速度,同时两次的变异操作均能保证变异后的个体满足约束条件h1+h2+
…
+hm=l。
22.由于变量数目很少,优化问题描述合理,并且求解算法的效率很高,因而本发明提供的方法即使应用于大规模的集群,集群能耗优化问题依然能够实时求解。
23.以上所揭露的仅为本发明一种较佳实施例而已,当然不能以此来限定本发明之权利范围,因此依本发明权利要求所作的等同变化,仍属本发明所涵盖的范围。