一种面向交互式工作负载的数据中心粗粒度动态服务器预留算法的制作方法

文档序号:11156788阅读:来源:国知局

技术特征:

1.一种面向交互式工作负载的数据中心粗粒度动态服务器预留算法,其特征在于,建立长期/短期虚拟服务器租用问题通用优化模型如下:

<mrow> <munder> <mrow> <mi>m</mi> <mi>i</mi> <mi>n</mi> </mrow> <mrow> <msub> <mi>k</mi> <mi>i</mi> </msub> <mo>,</mo> <mi>i</mi> <mo>&Element;</mo> <mo>{</mo> <mn>0</mn> <mo>,</mo> <mo>...</mo> <mo>,</mo> <mi>N</mi> <mo>}</mo> </mrow> </munder> <msub> <mi>k</mi> <mn>0</mn> </msub> <mo>&times;</mo> <mi>N</mi> <mo>&times;</mo> <msub> <mi>C</mi> <mi>L</mi> </msub> <mo>+</mo> <msub> <mi>C</mi> <mi>S</mi> </msub> <mo>&times;</mo> <munderover> <mo>&Sigma;</mo> <mrow> <mi>i</mi> <mo>=</mo> <mn>1</mn> </mrow> <mi>N</mi> </munderover> <msub> <mi>k</mi> <mi>i</mi> </msub> </mrow>

约束条件:

<mrow> <mi>Pr</mi> <mrow> <mo>(</mo> <msub> <mi>d</mi> <mi>i</mi> </msub> <mo>&gt;</mo> <mi>D</mi> <mo>)</mo> </mrow> <mo>&lt;</mo> <mi>x</mi> <mo>,</mo> <mo>&ForAll;</mo> <mi>i</mi> <mo>&Element;</mo> <mo>{</mo> <mn>1</mn> <mo>,</mo> <mo>...</mo> <mo>,</mo> <mi>N</mi> <mo>}</mo> </mrow>

其中,k0为长期虚拟服务器租用数量,ki,i≠0为阶段i租用的短期虚拟服务器数量,N为决策阶段数量,CL为长期租赁一台虚拟服务器所需的单位时间成本,CS为短期租赁一台虚拟服务器所需的单位时间成本,di为阶段i的响应时间,D为阈值,x为违约概率;

通过求解该模型函数,实现总体资源租用成本的最小化。

2.根据权利要求1所述面向交互式工作负载的数据中心粗粒度动态服务器预留算法,其特征在于,采用资源需求学习算法,用随机梯度法建立资源数/违约概率映射表VP_table;然后采用动态服务器租用算法,得到长期虚拟机租用数量M和各个阶段的短期虚拟机租用数量m[N],从而求解所述模型函数。

3.根据权利要求2所述面向交互式工作负载的数据中心粗粒度动态服务器预留算法,其特征在于,所述资源需求学习算法包括:

A.建立VP_table,记该表中每个表项为VP_table[i][j],含义为时段i内资源数量为j的前提下关于SLA需求的违约概率;

B.算法的输入为:1)SLA,包括响应时间阈值th与违约概率阈值x两个参数;2)训练迭代次数ITE;首先建立资源数量/违约概率映射表VP_table,并确定决策次数即时段数N与每个时段内统计响应时间的时间槽长度Γ,定义两个临时存储空间p[i][k]与counter,其中p[i][k]存储一次迭代过程中阶段i采用k个资源时违约概率的样本,counter存储一个阶段中违约的次数用于计算p[i][k],η、i、k、j分别为迭代计数器、决策阶段计数器、资源计数器、以及一个决策阶段内的时间槽计数器;

C.将一个时段分为若干个时间槽,在一次迭代过程中,根据资源配置数k,统计时段i中时间槽j内的平均任务响应时间t[i][j][k],若该响应时间大于SLA中所规定的响应时间阈值th,则计数器counter加1;当阶段i内所有的时间槽中的平均响应时间都统计出以后,资源配置k下的违约概率样本p[i][k]用公式计算,其中分母24/(N×Γ)的含义是一个时段内所包含的时间槽个数,最后,公式VP_table[i][k]=(1-η)VP_table[i][k]+ηp[i][k]用随机梯度法更新VP_table中对应的表项,最终的输出是资源数量/违约概率映射表VP_table。

4.根据权利要求2所述面向交互式工作负载的数据中心粗粒度动态服务器预留算法,其特征在于,所述动态服务器租用算法是将寻找长期资源租赁数k的问题归结为如下函数的优化问题:

<mrow> <munder> <mrow> <mi>m</mi> <mi>i</mi> <mi>n</mi> </mrow> <mi>k</mi> </munder> <mi>N</mi> <mo>&CenterDot;</mo> <msub> <mi>C</mi> <mi>L</mi> </msub> <mo>&CenterDot;</mo> <mi>k</mi> <mo>+</mo> <munderover> <mo>&Sigma;</mo> <mrow> <mi>i</mi> <mo>=</mo> <mn>1</mn> </mrow> <mi>N</mi> </munderover> <msup> <mrow> <mo>&lsqb;</mo> <mi>K</mi> <mo>&lsqb;</mo> <mi>i</mi> <mo>&rsqb;</mo> <mo>-</mo> <mi>k</mi> <mo>&rsqb;</mo> </mrow> <mo>+</mo> </msup> <mo>&CenterDot;</mo> <msub> <mi>C</mi> <mi>S</mi> </msub> </mrow>

函数中的第一项是长期资源租用成本,第二项中为短期资源租用成本,[K[i]-k]+为阶段i的短期资源租用数量,运算符[x]+=max{x,0}。

5.根据权利要求4所述面向交互式工作负载的数据中心粗粒度动态服务器预留算法,其特征在于,所述动态服务器租用算法包括:

第一部分:利用穷举法在VP_table表中搜寻每个阶段满足SLA所需的最少虚拟服务器数量,并将结果存储在数组K[N]中;

第二部分:求解函数针对该函数的每个分界点即数组K[N]中的每个元素进行求解,求解的结果为最优长期租用虚拟服务器数量M与最低成本目标函数值m;

第三部分:根据解得的M与K[N]数组,计算每个阶段所需的短期虚拟服务器租用数量。

6.根据权利要求5所述面向交互式工作负载的数据中心粗粒度动态服务器预留算法,其特征在于,所述动态服务器租用算法的最坏时间复杂度为N×(K+2),其中K=MIN_VSNUM-MAX_VSNUM为一常量,MIN_VSNUM与MAX_VSNUM分别为一事先指定的服务器数量最小值与最大值。

当前第2页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1