基于在线学习的云计算资源预留策略
2020-04-25郭鹏
郭鹏
(安徽电子信息职业技术学院 软件学院,安徽 蚌埠 233000)
为了满足用户的实时需求,云计算需要预留足够的资源(例如内存、CPU)来满足应用程序处于运行状态时的要求[1-2]。资源预留需要准确地满足实时的需求:资源的过度配置会导致运营成本过高,而资源配置不足可能会严重降低服务质量,造成中断和实时部署额外资源[3]。现有的资源预留策略大多使用机器学习这一类方法,但是机器学习算法的探索与应用阶段具有一定的不可预测性,可能会导致资源预留无法满足真实需求。因此,本文提出一种基于在线学习的云计算资源预留策略,通过实时在线学习来及时、准确地进行资源预留。
1 系统模型
(1)
如式(2)所示,当违反资源i的约束没有超过阈值,则认为策略π是一个可行的策略,即
(2)
因此,资源i的可行约束可以重写为:
(3)
我们的目标是找到一个能够使总成本最小化的策略,但由于每一个时隙t中的资源请求λt是未知的,这样的目标是难以达到的。为了解决这个问题,采用在线凸优化框架对问题进行求解。
采用误差这个性能指标,来对在线算法的鲁棒性进行评价[4]。误差是策略π与基准策略之间的累积损失差。令x*表示基准策略,可以通过求解下述的问题得到x*。
(4)
于是,误差R的定义如下:
(5)
通常,对手的动作需要受到资源的约束,即对手的资源请求不能超过资源i的有限值Λi,max。但是,Λi,max的取值会影响算法:若Λi,max的值太小,则会导致算法不稳定;若Λi,max的值太大,则资源请求很容易超出资源的总量,导致算法性能下降。
当策略π没有误差时,认为策略π具有与基准策略相同的平均性能。然后,引入一类基准策略,以确保对时间T内K个时隙的都没有违反约束:
(6)
当K与T相同时,能得到原始的基准。随着K值的下降,基准能够在一段较短的时间内确保约束不被违反,因此会产生较高的成本。
2 基于李雅普诺夫的优化策略
在时隙t中调用在线资源预留策略以将决策从xt-1更新为xt。为了解释OLRRS如何执行策略更新,实现以下三个过程:约束凸化、预测队列以及漂移加惩罚。
由于高斯过程的分位函数是一个拟凸函数,可以为FΛ设计一个凸包络函数,即:
(7)
(8)
如式(9)所示,将预测队列向量定义为Q,该向量中的每个元素表示每种资源的虚拟队列,其中包含过去迭代中预测的违反约束概率的和。
(9)
通过预测变量队列获得了时间平均约束后,接下来解释如何在OLRRS中更新xt。为了结合成本和预测队列,使用李雅普诺夫优化中的漂移加惩罚技术,该技术用于解决受约束的随机网络优化问题[5]。队列长度和成本之间的重要性是通过惩罚参数V控制的。具体来说,首先考虑二次李雅普诺夫漂移,用来衡量我们的策略对预测队列的影响。二次李雅普诺夫漂移需要满足如下所示的条件:
(10)
(11)
变量x增大会使漂移项Δ(t)变小,但同时会导致成本VC(x)增加。在最小化漂移加惩罚的过程中,可以在两个相互矛盾的目标之间取得平衡。在每个时隙t中,可以找到漂移加惩罚上限的极小值,并产生了一种在线策略。
进一步添加一个以xt-1为中心的二次正则化器,以确保下一次迭代xt与上次迭代xt-1的值之间变化不大。
在漂移加惩罚的基础上加入了额外项α‖xt-xt-1‖2,有
(12)
观察函数g(x),可以对g(x)关于资源I进行分解,然后通过求解每一个子问题得到资源预留策略。这能为每个时隙t生成了一个bang-bang临时预留策略。必须保持稳定的预留策略,以允许对服务器和资源的操作。与此同时,使用的正则器,以步长为1/2α的梯度下降法来更新资源。令梯度为零,就能求解得到xi,即
(13)
3 性能评估
在本小节中,将本算法与Dynamic Mirror Descent(DMD)框架[6]的实现进行比较,采用真实的公共数据集[7]。数据集包含有关方面的详细信息:(1)资源的实际使用情况;(2)资源的请求;(3)将资源放置在大型集群中的约束。测量使用群集上资源的实际使用情况,测量的时间粒度为1 d。
图1和图2分别是CPU资源和内存资源的使用情况。由图可知,对于CPU和内存两种资源,OLRRS都会较为准确地预留资源,并针对真实需求变化及时地做出快速响应。DMD却无法及时适应动态变化,并有违反资源约束的情况发生。
图1 CPU资源使用情况 图2 内存资源使用情况
4 结论
本文设计了一种用于云计算的在线资源预留策略(OLRRS)。由于云端的工作负载多变且难以预测,因此在云环境中进行资源预留是一个具有挑战性的课题。OLRRS使用李雅普诺夫优化技术来进行资源策略的调整:一方面最小化超额配置的资源,提高资源使用率;另一方面,避免了预留过少的资源导致无法满足用户的真实需求。实验结果验证了本算法在资源分配方面的有效性。未来的工作集中于从理论方面证明本算法的性能。