当前位置: 首页 > news >正文

在线确定性算法与自适应启发式在虚拟机动态整合中的竞争分析与性能优化

0 理论基础

0.1 离线算法 vs. 在线算法

这组概念的核心区别在于:做决策时,是否知道未来的全部信息。

0.1.1 离线算法

  • 定义:在开始执行之前就已经掌握了整个问题序列的所有输入信息的算法。
  • 特点:它可以纵观全局,从过去、现在到未来的一切都知道。因此,它可以做出全局最优的决策。

0.1.2 在线算法

  • 定义:在执行过程中逐步接收输入信息,并且必须在收到当前信息后立即做出决策,而不知道未来的输入会是什么的算法。
  • 特点:它只能根据当前和过去的信息做出“局部最优”的选择,但这个选择从全局来看可能不是最好的。

0.2 竞争分析

竞争分析就是用来衡量和评价在线算法性能的一种理论框架。

0.2.1 核心思想

我们无法要求在线算法像离线算法那样做到全局最优,因为这不公平(离线算法有信息优势)。那么,我们如何判断一个在线算法是好是坏呢?竞争分析的方法是:将一个在线算法与“全知全能”的最优离线算法进行比较。看这个在线算法在最坏情况下,会比最优离线算法“差多少”。

0.2.2 竞争比率 ccc

这是竞争分析的量化指标。对于所有可能的输入序列,在线算法产生的成本 ALG(I)ALG(I)ALG(I) 与最优离线算法产生的成本 OPT(I)OPT(I)OPT(I) 的最大比值。
ALG(I)≤c×OPT(I)+a ALG(I) ≤ c \times OPT(I) + a ALG(I)c×OPT(I)+a
其中 ccc 就是竞争比率,aaa 是一个常数。那么该如何理解 ccc

  • 如果 c=2c = 2c=2,意味着无论输入(工作负载)多么刁钻、恶劣,这个在线算法产生的成本最多是最优离线算法的2倍。
  • ccc 越接近1,说明这个在线算法的性能越接近“先知”算法,性能越好。
  • 如果某个在线算法的竞争比率是 ccc,我们就说这个算法是 c−competitivec-competitiveccompetitive 的。

这篇论文的逻辑是:

  1. 理论分析:先通过竞争分析,在一个简化模型上搞清楚在线算法性能的理论极限(竞争比率)。
  2. 实践设计:然后根据理论分析的见解,去设计在真实复杂环境下(多主机、多VM、动态负载)也能高效运行的自适应启发式算法(如 LRLRLRLRRLRRLRR 等),并通过实验验证它们确实能超越理论上的“最优在线确定性算法”。

0.3 SLA

Service Level Agreement,SLA,服务水平协议,是指在客户与服务供应商之间签订的协议,其中规定了服务供应商应当提供的服务水平和质量标准。该协议通常会规定服务提供商需要满足的最低服务水平标准,例如服务可用性、故障响应时间、服务质量等。

2 摘要

The rapid growth in demand for computational power driven by modern service applications combined with the shift to the Cloud computing model have led to the establishment of large-scale virtualized data centers. Such data centers consume enormous amounts of electrical energy resulting in high operating costs and carbon dioxide emissions. Dynamic consolidation of virtual machines (VMs) using live migration and switching idle nodes to the sleep mode allow Cloud providers to optimize resource usage and reduce energy consumption. However, the obligation of providing high quality of service to customers leads to the necessity in dealing with the energy-performance trade-off, as aggressive consolidation may lead to performance degradation. Due to the variability of workloads experienced by modern applications, the VM placement should be optimized continuously in an online manner. To understand the implications of the online nature of the problem, we conduct competitive analysis and prove competitive ratios of optimal online deterministic algorithms for the single VM migration and dynamic VM consolidation problems. Furthermore, we propose novel adaptive heuristics for dynamic consolidation of VMs based on an analysis of historical data from the resource usage by VMs. The proposed algorithms significantly reduce energy consumption, while ensuring a high level of adherence to the Service Level Agreements (SLA). We validate the high efficiency of the proposed algorithms by extensive simulations using real-world workload traces from more than a thousand PlanetLab VMs.

译:

现代服务应用程序推动的计算能力需求的快速增长,加上向云计算模型的转变,促使了大规模虚拟化数据中心的建立。这些数据中心消耗大量的电能,导致高昂的运营成本和二氧化碳排放。通过使用实时迁移来动态整合虚拟机(VM),并将空闲节点切换至睡眠模式,云服务提供商能够优化资源使用并减少能耗。然而,提供高质量服务的义务使得必须处理能源和性能之间的权衡,因为过度整合可能导致性能下降。由于现代应用程序工作负载的变动性,虚拟机的部署应当持续在线优化。为了理解这个问题的在线特性,我们进行了竞争性分析,并证明了单个虚拟机迁移和动态虚拟机整合问题的最优在线确定性算法的竞争比。此外,我们基于对虚拟机资源使用历史数据的分析,提出了新的自适应启发式算法用于虚拟机的动态整合。所提出的算法显著减少了能耗,同时确保了对服务水平协议(SLA)的高遵守度。我们通过使用来自超过一千台 PlanetLab 虚拟机的实际工作负载跟踪的广泛仿真验证了所提算法的高效性。

2.1 背景与问题

现代服务应用推动了计算能力需求的快速增长,同时云计算模型的转变促使了大规模虚拟化数据中心的建立。这些数据中心消耗大量电能,导致高运营成本和二氧化碳排放。

2.2 解决方案

动态整合虚拟机,包括使用实时迁移技术和将空闲节点切换到睡眠模式,帮助优化资源使用并减少能耗。需要在能源消耗和服务质量之间做出权衡,因为过度整合虚拟机可能导致性能下降。

2.3 问题特性

由于现代应用程序的工作负载变动性,虚拟机部署需要持续在线优化。

2.4 研究贡献

  1. 进行了竞争性分析,证明了单虚拟机迁移和动态虚拟机整合问题的最优在线确定性算法的竞争比。
  2. 提出了基于虚拟机资源使用历史数据的自适应启发式算法,显著减少了能耗,并确保高水平的 SLA 遵守。

2.5 验证

通过使用来自超过一千台 PlanetLab 虚拟机的实际工作负载数据进行了广泛仿真,验证了算法的高效性。

3 单一虚拟机迁移问题

3.1 问题描述

应用竞争分析来研究虚拟机能效与性能优化动态整合的子问题。系统包含一台物理服务器(主机)及其上部署的 MMM 台虚拟机。该问题采用离散时间框架,将时间划分为 NNN 个1秒的时间段。

M说明
MMM虚拟机数量
CpC_pCp单位时间能耗成本
tpt_ptp时间周期
CptpC_pt_pCptp总能耗成本
CvC_vCv单位时间 SLA 违规成本
tvt_vtvSLA 违规的持续时间
vvvSLA 违规开始时间
nnn停止时间
mmm启动虚拟机迁移时间
rrr自 SLA 违规开始的剩余时间

注:

  1. 停止时间 nnn 中“停止”指的是 SLA 违规成本计算的停止。有两种情况,第一,虚拟机迁移完成得晚,即 m<v<m+Tm < v < m + Tm<v<m+T,意味着从 vvvm+Tm+Tm+T SLA 违规持续存在(因为迁移没完成,主机仍过载),此时 SLA 违规成本必须计算到迁移完成的那一刻 m+Tm+Tm+T,停止时间 nnn 是迁移结束时间 m+Tm+Tm+T; 第二,SLA 违规开始得晚,即 m<m+T<vm < m+T < vm<m+T<v,迁移已经在 m+Tm+Tm+T 时刻完成并解除了过载状态,这个潜在的SLA违规实际上被成功避免了,它从未真正发生,因此,没有SLA违规成本。成本计算只需要考虑到这个潜在违规被“激活”的前一刻,即 vvv 时刻,停止时间 nnn 是SLA违规开始时间 vvv。竞争分析的抽象模型需要一个明确的、已知的“危机点”。这个危机点 vvv 是离线算法(知道未来)用来做出完美决策的知识。在线算法(不知道未来)的目标就是尽可能地猜准 vvv,从而像离线算法一样及时行动。所以,将 nnn 定义为停止时间,即虚拟机迁移结束与 SLA 违规开始时间中的较晚者。
  2. rrr 被定义为从 SLA 违规开始时间 vvv 到停止时间 nnn 的持续时间,即 r=n−vr=n-vr=nv。简单来说,rrr 就是 SLA 违规状态持续的“有效时长”。变量 rrr 的核心作用是量化SLA 违规的严重程度,并将其与成本直接挂钩。最优算法的目标之一就是通过巧妙的决策(选择迁移时间 mmm),尽可能地缩短 rrr 甚至使其为0。

3.2 成本函数

成本函数定义为:因 SLA 违规产生的费用以及额外能耗成本。其中,额外能耗包括虚拟机迁移至备用主机时消耗的电量,以及主机在 SLA 违规开始后消耗的电量。换句话说,除 t0t_0t0(起始时间)至 vvv 期间主机消耗的电量外,其他所有能耗均被纳入考量。成本函数 C(v,m)C(v, m)C(v,m) 定义式如下:
C(v,m)={(v−m)Cpif m<v,v−m≥T,(v−m)Cp+2(m−v+T)Cp+(m−v+T)Cvif m≤v,v−m<T,rCp+(r−m+v)Cp+rCvif m>v. C(v,m)= \begin{cases} (v-m)C_p & \mathrm{if~}m<v,v-m\geq T, \\ (v-m)C_p+2(m-v+T)C_p+(m-v+T)C_v & \mathrm{if~}m\leq v,v-m<T, \\ rC_p+(r-m+v)C_p+rC_v & \mathrm{if~}m>v. & \end{cases} C(v,m)=(vm)Cp(vm)Cp+2(mv+T)Cp+(mv+T)CvrCp+(rm+v)Cp+rCvif m<v,vmT,if mv,vm<T,if m>v.
C1C_1C1 描述了迁移在 SLA 违规开始前足够早开始,并在违规开始前完成;
C2C_2C2 描述了迁移在 SLA 违规开始前开始,但未在违规开始前完成;
C3C_3C3 迁移在 SLA 违规开始之后才开始。

3.3 The Optimal Offline Algorithm

译:最优离线算法

3.3.1 Theorem 1

The optimal offline algorithm for the single VM migration problem incurs the cost of T/sT/sT/s, and is achieved when (v−T)/m=1(v−T)/m = 1(vT)/m=1.

译:针对单个虚拟机迁移问题的最优离线算法会产生 T/sT/sT/s 的成本,并且在 (v−T)/m=1(v−T)/m = 1(vT)/m=1 的情况下得以实现。

3.3.2 Proof

核心目的

找到一个完美的迁移时间m,使得总成本最低,并且计算出这个最低成本是多少。

证明思路
  1. 重新参数化问题:引入一个关键变量 a=(v−m)/Ta = (v - m)/Ta=(vm)/T,将问题从寻找最佳时间点 mmm 转化为寻找最佳比例 aaa
  2. 统一成本函数:将原本分段定义的成本函数 C(v,m)C(v, m)C(v,m) 转化为一个关于 aaa 的、更简单的函数 C(a)C(a)C(a)
  3. 寻找最小值:分析函数 C(a)C(a)C(a),找到使其取值最小的 aaa 值,并计算出该最小值。
第一步:重新参数化 - 引入变量 aaa
  • 定义:
    a=(v−m)/Ta = (v - m) / Ta=(vm)/T。通过这个定义,我们可以用 aaa 来表示 mmm,得 m=v−aTm = v - aTm=vaT
  • 物理意义:
    (v−m)(v - m)(vm) 是迁移开始时间 mmm 到SLA违规时间 vvv 的时间差。将这个时间差除以迁移所需时间 TTTaaa 就代表了 “提前量”是迁移时间的多少倍。例如:如果 a=2a = 2a=2,意味着你在SLA违规发生前 2T2T2T 的时间就开始迁移了;如果 a=0.5a = 0.5a=0.5,意味着你在SLA违规发生前 0.5T0.5T0.5T 的时间才开始迁移;如果 a=0a = 0a=0,意味着你在SLA违规发生的同一时刻才开始迁移 (m=vm = vm=v);如果 a<0a < 0a<0,意味着你在SLA违规发生之后才开始迁移 (m>vm > vm>v)。
第二步:将三种情况统一为关于 aaa 的函数

现在我们用 aaa 来重写原来的三个成本公式。

情况1: a≥1a ≥ 1a1 (对应原 C1C_1C1,迁移完成得早)

原公式为 C1=(v−m)CpC_1 = (v - m)C_pC1=(vm)Cp,代入 m=v−aTm = v - aTm=vaT 得,C1=(v−(v−aT))Cp=aTCpC_1 = (v - (v - aT))C_p = aT C_pC1=(v(vaT))Cp=aTCp

情况2: 0≤a<10 ≤ a < 10a<1 (对应原 C2C_2C2,迁移完成得晚)

原公式为 C2=(v−m)Cp+2(m−v+T)Cp+(m−v+T)CvC_2 = (v-m)C_p + 2(m-v+T)C_p + (m-v+T)C_vC2=(vm)Cp+2(mv+T)Cp+(mv+T)Cv,代入 m=v−aTm = v - aTm=vaT 得,C2=T(2−a)Cp+T(1−a)CvC_2 = T(2 - a) C_p + T(1-a) C_vC2=T(2a)Cp+T(1a)Cv

情况3: a<0a < 0a<0 (对应原 C3C_3C3,反应太慢)

原公式为 C3=rCp+(r−m+v)Cp+rCvC_3 = r C_p + (r - m + v) C_p + r C_vC3=rCp+(rm+v)Cp+rCv,其中 r=n−vr = n - vr=nvn=m+Tn = m + Tn=m+T,代入 m=v−aTm = v - aTm=vaT 得,C3=T(2−a)Cp+T(1−a)CvC_3 = T(2-a)C_p + T(1-a)C_vC3=T(2a)Cp+T(1a)Cv

第三步:统一成本函数并代入成本权重

现在,我们将三个情况合并为两个。根据论文定义,设 Cp=1/sC_p = 1/sCp=1/sCv=1C_v = 1Cv=1。将其代入,当 a<1a < 1a<1 时,C(a)=T(2−a)(1/s)+T(1−a)(1)=T(2−a)/s+T(1−a)C(a) = T(2-a)(1/s) + T(1-a)(1) = T(2-a)/s + T(1-a)C(a)=T(2a)(1/s)+T(1a)(1)=T(2a)/s+T(1a);当 a≥1a ≥ 1a1C(a)=aT(1/s)=aT/sC(a) = aT (1/s) = aT / sC(a)=aT(1/s)=aT/s

所以最终的成本函数是:
C(a)={T(2−a)s+T(1−a)if a<1,aTsif a≥1. C(a)= \begin{cases} \frac{T(2-a)}{s}+T(1-a) & \mathrm{if~}a<1, \\ \frac{aT}{s} & \mathrm{if~}a\geq1. & \end{cases} C(a)={sT(2a)+T(1a)saTif a<1,if a1.

注:

在真实世界中,CpC_pCp(能耗成本)和 CvC_vCv(SLA违规成本)可能是具体的货币值(如美元/小时)。但在理论分析中,我们关心的是它们之间的相对重要性,而不是绝对数值。通过设置 Cp=1/sC_p = 1/sCp=1/sCv=1C_v = 1Cv=1,我们实际上是在说:SLA违规成本的权重被标准化为1;能耗成本的权重是 1/s1/s1/s;参数 sss 就代表了 SLA违规成本相对于能耗成本的倍数。

参数 sss 代表了 Cloud 提供商对 SLA违规的重视程度:如果 sss 很大(比如 s=100s=100s=100):意味着 SLA违规成本远高于能耗成本,提供商应该非常保守,尽早迁移VM以避免任何性能下降;如果 sss 很小(比如 s=0.1s=0.1s=0.1):意味着能耗成本是主要考量,提供商可以冒更大风险,更激进地进行整合以节省能源。

设置 Cp=1/sC_p = 1/sCp=1/sCv=1C_v = 1Cv=1 是一个数学上的标准化技巧,它:简化了表达式,使理论分析更清晰;突出了关键参数 sss,即两种成本的相对权重;不影响结论的一般性,因为成本函数的缩放不会改变最优解。这种技巧在优化理论和竞争分析中很常见,它帮助研究者专注于问题的本质结构,而不是被具体的数值所干扰。

第四步:寻找最小值

现在我们分析这个函数在哪里取得最小值。

  1. a≥1a ≥ 1a1 的区间

    函数是 C(a)=(T/s)∗aC(a) = (T/s) * aC(a)=(T/s)a。这是一个线性递增函数。因此,在此区间内,最小值出现在左端点,即 a=1a = 1a=1 处;在 a=1a=1a=1 时,成本为 C(1)=(T/s)∗1=T/sC(1) = (T/s) * 1 = T/sC(1)=(T/s)1=T/s

  2. a<1a < 1a<1 的区间

    函数是 C(a)=T(2−a)/s+T(1−a)C(a) = T(2-a)/s + T(1-a)C(a)=T(2a)/s+T(1a),可以重写为 C(a)=(2T/s+T)−(T/s+T)aC(a) = (2T/s + T) - (T/s + T)aC(a)=(2T/s+T)(T/s+T)a。由于 −(T/s+T)-(T/s + T)(T/s+T) 是负数,所以这个函数在 a<1a < 1a<1 的区间是线性递减的。因此,在此区间内,aaa 值越大,成本越低。当 aaa 无限接近1 from the left(从左侧趋近于1)时,成本最低。当 aaa 趋近于1时,成本为:C(a→1)=T(2−1)/s+T(1−1)=T/s+0=T/sC(a→1) = T(2-1)/s + T(1-1) = T/s + 0 = T/sC(a1)=T(21)/s+T(11)=T/s+0=T/s

结论

无论在哪个区间,成本函数的最小值都是 T/sT/sT/s。这个最小值在 a=1a = 1a=1 时达到。回顾 aaa 的定义:a=(v−m)/T=1a = (v - m)/T = 1a=(vm)/T=1 => v−m=Tv - m = Tvm=T => m=v−Tm = v - Tm=vT。因此,最优离线算法就是:在SLA违规发生前恰好一个迁移周期 TTT 的时候,开始迁移VM。这个算法产生的成本是 T/sT/sT/s。这个证明展示了离线算法的“先知”优势——因为它知道 vvv,所以可以分秒不差地执行这个完美策略。

3.4 The Optimal Online Deterministic Algorithm

译:最优在线确定性算法

3.4.1 基础概念

Online problem

According to Borodin and El-Yaniv, optimization problems in which the input is received in an online manner and in which the output must be produced online are called online problems.

译:输入以在线方式接收且输出必须在线生成的优化问题被称为在线问题。

在现实应用场景中,控制算法无法完全预知未来事件,因此必须处理在线问题。

Online algorithms

Algorithms that are designed for online problems are called online algorithms.

译:为在线问题而设计的算法被称为在线算法。

Competitive analysis

竞争分析——用来衡量在线算法性能与效率的一种方法。在竞争分析的框架下,在线算法的质量是相对于那些对未来有完全了解的算法的最佳可能性能来衡量的。

如果存在一个常数 a ,对于所有有限序列 I 满足下式,那么在线算法 ALG 是 c-competitive 的。
ALG(I)≤c⋅OPT(I)+a ALG(I)\leq c\cdot OPT(I)+a ALG(I)cOPT(I)+a
其中 ALG (I) 是算法 ALG 针对输入 I 所产生的成本,OPT (I) 是针对输入序列 I 的最优离线算法的成本,a 是一个常数。这意味着对于所有可能的输入,ALG 产生的成本在最优离线成本的常数因子 c 加上常数 a 的范围内。

注:ALG(algorithm),指我们正在分析和评估的实际算法;OPT(optimal),指一个理想化的基准算法。

原文中,还有一段关键的话:

In competitive analysis, an online deterministic algorithm is analyzed against the input generated by an omnipotent malicious adversary. Based on the knowledge of the online algorithm, the adversary generates the worst possible input for the online algorithm, i.e. the input that maximizes the competitive ratio. An algorithm’s configuration is the algorithm’s state with respect to the outside world, which should not be confused with the algorithm’s internal state consisting of its control and internal memory.

在竞争分析中,在线确定性算法需针对由全知恶意对手生成的输入进行分析。基于对该在线算法的了解,对手会生成对其最不利的输入,即能最大化竞争比的输入。算法的配置是算法相对于外部世界的状态,不应与由其控制和内部内存构成的算法内部状态相混淆。

这段话描述了竞争分析中针对在线确定性算法的核心方法论,即假设存在一个“全知恶意对手”,它完全知晓算法的当前配置(如虚拟机的位置、资源利用率等外部状态),并能据此生成最坏可能的输入序列,刻意使算法的性能最差——例如在虚拟机迁移场景中,故意诱发过早迁移或过晚迁移,从而最大化在线算法的成本与最优离线算法成本之间的比率。这种分析方式虽然悲观,却为算法提供了严格的理论保证:所得的竞争比率确定了性能在最坏情况下的上界,确保算法在任何实际环境中都不会表现得更差。因此,该框架不仅验证了算法的鲁棒性,也为云服务提供商提供了可靠的理论性能边界,使其在面对各种工作负载时具备可预测的行为保障。

3.4.2 Theorem 2

The competitive ratio of the optimal online deterministic algorithm for the single VM migration problem is 2 + s, and the algorithm is achieved when m = v.

单虚拟机迁移问题的最优在线确定性算法的竞争比为 2 + s,且该算法在 m = v 时达成。

3.4.3 Proof

根据 Theorem 1 得出的在线算法成本:
C(a)={T(2−a)s+T(1−a)if a<1,aTsif a≥1, C(a)= \begin{cases} \frac{T(2-a)}{s}+T(1-a) & \mathrm{if~}a<1, \\ \frac{aT}{s} & \mathrm{if~}a\geq1, & \end{cases} C(a)={sT(2a)+T(1a)saTif a<1,if a1,
其中 a=v−mTa=\frac{v-m}{T}a=TvmCp=1sC_p=\frac{1}{s}Cp=s1Cv=1C_v=1Cv=1。最优离线算法成本:
OPT(I)=TS, OPT(I)=\frac{T}{S}, OPT(I)=ST,
这个最优成本是在 a=1a=1a=1 时取得的。再结合公式:
ALG(I)≤c⋅OPT(I)+a, ALG(I)\leq c\cdot OPT(I)+a, ALG(I)cOPT(I)+a,
讨论在 a 的不同取值范围内,在线算法的竞争比率。竞争比率的定义是 ALG(I)OPT(I)\frac{ALG(I)}{OPT(I)}OPT(I)ALG(I),我们将 C(a)C(a)C(a) 作为 ALG(I)ALG(I)ALG(I) 的代价。

情况1:当 a<1a<1a<1

在线算法成本:
ALG(I)=C(a)=T(2−a)s+T(1−a), ALG(I)=C(a)=\frac{T(2-a)}{s}+T(1-a), ALG(I)=C(a)=sT(2a)+T(1a),
最优离线算法成本:
OPT(I)=TS, OPT(I)=\frac{T}{S}, OPT(I)=ST,
竞争比率:
ALG(I)OPT(I)=T(2−a)s+T(1−a)Ts=2+s−a(1+s). \frac{ALG(I)}{OPT(I)}=\frac{\frac{T(2-a)}{s}+T(1-a)}{\frac{T}{s}}=2+s-a(1+s). OPT(I)ALG(I)=sTsT(2a)+T(1a)=2+sa(1+s).

情况2:当 a≥1a\geq1a1

在线算法成本:
ALG(I)=C(a)=aTs, ALG(I)=C(a)=\frac{aT}{s}, ALG(I)=C(a)=saT,
最优离线算法成本:
OPT(I)=TS, OPT(I)=\frac{T}{S}, OPT(I)=ST,
竞争比率:
ALG(I)OPT(I)=aTsTs=a. \frac{ALG(I)}{OPT(I)} =\frac{\frac{aT}{s}}{\frac{T}{s}}=a. OPT(I)ALG(I)=sTsaT=a.
综上所述:
ALG(I)OPT(I)={2+s−a(1+s)if a<1,aif a≥1. \Large\frac{ALG(I)}{OPT(I)}= \begin{cases} 2+s-a(1+s) & \mathrm{if~}a<1, \\ a & \mathrm{if~}a\geq1. & & \end{cases} OPT(I)ALG(I)=2+sa(1+s)aif a<1,if a1.
现在,我们引入那个“全知全能的恶意对手”。对手知道算法的一切,它的目标是最大化这个竞争比率。

将所有在线确定性算法分为两类
  • ALG1 类算法。迁移时间 mmm 是当前时间 iii 的函数(m=f(i)m = f(i)m=f(i))。
    • 由于 mmm 不依赖于未来的 vvv,对手可以通过选择一个非常晚的 vvv(比如 v→∞v → ∞v),使得 a=(v−m)/Ta = (v - m)/Ta=(vm)/T 变得任意大(a→∞a → ∞a)。根据竞争比率公式,当 a≥1a ≥ 1a1 时,竞争比率等于 aaa。因此,a→∞a → ∞a 意味着竞争比率也趋向无穷大。所以,这类算法是不具竞争性的,因为对手可以轻易让它们的性能变得极差。
  • ALG2 类算法:迁移时间 mmm 是SLA违规发生时间 vvv 的函数(m=g(v)m = g(v)m=g(v))。
    • 一个在线算法只有在 i=vi = vi=v 时刻之后才能知道 vvv 已经发生。因此,任何合理的决策都必须在 vvv 之后做出,这意味着 m≥vm ≥ vmv。由于 m≥vm ≥ vmv,根据 a=(v−m)/Ta = (v - m)/Ta=(vm)/T,可以得出 a≤0a ≤ 0a0
寻找最优策略(在 ALG2 类中优化)

现在我们只需要关注 ALG2 类算法(a≤0a ≤ 0a0)。对于这类算法,竞争比率公式简化为:
竞争比率=2+s−a(1+s)竞争比率 = 2 + s - a(1+s)竞争比率=2+sa(1+s) (因为 a<1a < 1a<1)。我们的目标是最小化这个竞争比率(即,在最坏情况下,性能损失尽可能小)。

观察这个公式:2+s2 + s2+s 是一个常数,−a(1+s)- a(1+s)a(1+s) 是一个变量部分。由于 a≤0a ≤ 0a0,所以 −a(1+s)-a(1+s)a(1+s) 是一个非负数(因为负负得正)。因此,为了最小化整个竞争比率,我们必须让 −a(1+s)-a(1+s)a(1+s) 这一项尽可能小,也就是让它等于 0。让 −a(1+s)=0-a(1+s) = 0a(1+s)=0 的唯一方式就是让 a=0a = 0a=0

得出结论

a=0a = 0a=0 时,代入公式,得到最小可能的竞争比率为 2+s2 + s2+sa=0a = 0a=0 根据定义就是 (v−m)/T=0(v - m)/T = 0(vm)/T=0,即 m=vm = vm=v。所以,最优的在线确定性算法就是在检测到SLA违规的那一刻(vvv),立即发起VM迁移(m=vm = vm=v),这个策略在最坏情况下的竞争比率是 2+s2 + s2+s

4 动态虚拟机整合问题

4.1 问题描述

符号说明
nnn主机数量
AhA_hAh每台主机的容量
AvA_vAv虚拟机分配到的最大 CPU 容量
mmmm=AhAvm=\frac{A_h}{A_v}m=AvAh,每台主机分配到的最大虚拟机数量
nmnmnm虚拟机总量
tmt_mtm迁移虚拟机时间
CpC_pCpSLA 违规能耗成本
CvC_vCv单位时间 SLA 违规成本
CCC总成本

不失一般性,我们可以定义 Cp=1C_p=1Cp=1Cv=sC_v=sCv=s,其中 s∈R+s\in\R^+sR+。这等价于定义 Cp=1C_p=1Cp=1Cv=1C_v=1Cv=1

注:总成本仅差一个常数因子 1/s1/s1/s,这在优化问题和竞争分析中不会改变结果。这种缩放简化了数学推导,源于优化问题中成本函数的缩放不变性,使参数 sss 成为控制能量与性能权衡的关键。

我们假设,当一台主机处于空闲状态,即没有分配虚拟机时,它会被关闭且不消耗电力,或者切换到功耗可忽略不计的睡眠模式。总成本 CCC 定义如下:
C=∑t=t0T(Cp∑i=0nati+Cv∑j=0nvtj), C=\sum_{t=t_0}^T\left(C_p\sum_{i=0}^na_{ti}+C_v\sum_{j=0}^nv_{tj}\right), C=t=t0T(Cpi=0nati+Cvj=0nvtj),
其中,t0t_0t0 表示初始时间;TTT 表示总时间;atia_{ti}ati 表示在 ttt 时刻主机 iii 是否是活动主机,取值范围为 0 和 1;vtjv_{tj}vtj 表示在 ttt 时刻主机 jjj 是否在经历 SLA 违规。问题在于确定应在什么时间、将哪些虚拟机以及迁移到何处,以使总成本 CCC 最小化。

4.2 The Optimal Online Deterministic Algorithm

4.2.1 Theorem 3

The upper bound of the competitive ratio of the optimal online deterministic algorithm for the dynamic VM consolidation problem is ALG(I)OPT(I)≤1+ms2(m+1)\frac{ALG(I)}{OPT(I)}\leq1+\frac{ms}{2(m+1)}OPT(I)ALG(I)1+2(m+1)ms.

译:针对动态虚拟机整合问题的最优在线确定性算法,其竞争比的上限为 ALG(I)OPT(I)≤1+ms2(m+1)\frac{ALG(I)}{OPT(I)}\leq1+\frac{ms}{2(m+1)}OPT(I)ALG(I)1+2(m+1)ms

4.2.2 Proof

1. 问题设定

nnn 台同构主机,每台容量 AhA_hAh;每个VM最大需求 AvA_vAv,所以 m=AhAvm = \frac{A_h}{A_v}m=AvAh;总VM数量:nmnmnm(每台主机分配 mmm 个VM);VM迁移时间:tmt_mtm

2. 对手策略

对手(The adversary)的目标是让在线算法的成本尽可能高,同时让离线最优算法的成本尽可能低。对手强迫在线算法不断迁移VM,保持所有主机活跃(消耗能量),并制造SLA违反,在线算法无法预知工作负载变化,只能被动反应,因此成本较高。当一台主机上有 m+1m+1m+1 个 VM且都以其最大容量 AvA_vAv 运行时,总需求为 (m+1)Av>Ah(m+1)A_v > A_h(m+1)Av>Ah,必然发生 SLA 违反。那么,最大可能同时发生SLA违反的主机数为 nv=⌊nmm+1⌋n_v=\left\lfloor\frac{nm}{m+1}\right\rfloornv=m+1nm

3. 时间周期划分

对手将时间分成周期,每个周期长度 2tm2t_m2tm,再分成两个相等部分。

第一部分(前 tmt_mtm):对手通过 VM 迁移,使 nvn_vnv 台主机上各部署了 m+1m+1m+1 个VM;在此过程中,所有 nnn 台主机均处于活跃状态,持续消耗能量。由于 VM 的需求被控制在不超载的水平,整个过程未发生 SLA 违反,对应的成本可表示为tmnCpt_m n C_ptmnCp

第二部分(后 tmt_mtm):对手首先让所有虚拟机(VM)以其最大容量 AvA_vAv 运行,这直接导致 nvn_vnv 台主机发生 SLA 违反,原因是每台该类主机上承载了 m+1m+1m+1 个 VM。随后,在线算法检测到 SLA 违反情况,随即启动 VM 迁移操作,将相关 VM 迁移回 nrn_rnr 台主机;在此过程中,所有 nnn 台主机始终保持活跃状态,且 nvn_vnv 台主机持续经历 SLA 违反。该场景下产生的成本可通过公式 tm(nCp+nvCv)t_m(n C_p + n_v C_v)tm(nCp+nvCv) 计算得出。

4. 成本计算

每个周期 2tm2t_m2tm 在线算法的总成本为,
C=2tmnCp+tmnvCv, C=2t_mnC_p+t_mn_vC_v, C=2tmnCp+tmnvCv,
又因总时间 T−t0=2tmτT - t_0 = 2t_m \tauTt0=2tmτ,所以在线算法成本为,
ALG(I)=τtm(2nCp+nvCv). ALG(I)=\tau t_m(2nC_p+n_vC_v). ALG(I)=τtm(2nCp+nvCv).
离线算法因知晓未来的工作负载,能够实现精准配置:保持每台主机上恰好部署 mmm 个 VM,无需进行任何 VM 迁移,既不会发生 SLA 违反,也仅需 nnn 台主机持续运行即可满足需求。所以,离线最优算法成本为,
OPT(I)=2τtmnCp. OPT(I)=2\tau t_mnC_p. OPT(I)=2τtmnCp.

5. 竞争比推导

ALG(I)OPT(I)=τtm(2nCp+nvCv)2τtmnCp=1+nvCv2nCp, \frac{ALG(I)}{OPT(I)}=\frac{\tau t_m(2nC_p+n_vC_v)}{2\tau t_mnC_p}=1+\frac{n_vC_v}{2nC_p}, OPT(I)ALG(I)=2τtmnCpτtm(2nCp+nvCv)=1+2nCpnvCv,

代入 Cp=1/sC_p = 1/sCp=1/s, Cv=1C_v = 1Cv=1 得,
ALG(I)OPT(I)=1+nvs2n. \frac{ALG(I)}{OPT(I)}=1+\frac{n_vs}{2n}. OPT(I)ALG(I)=1+2nnvs.

6. 两种情况分析

情况1:nmm+1\frac{nm}{m+1}m+1nm 是整数,此时 nv=nmm+1n_v = \frac{nm}{m+1}nv=m+1nm​,代入得,
ALG(I)OPT(I)=1+ms2(m+1). \frac{ALG(I)}{OPT(I)}=1+\frac{ms}{2(m+1)}. OPT(I)ALG(I)=1+2(m+1)ms.
情况2:nmm+1\frac{nm}{m+1}m+1nm 不是整数,此时 nv<nmm+1n_v < \frac{nm}{m+1}nv<m+1nm,所以,
ALG(I)OPT(I)<1+ms2(m+1). \frac{ALG(I)}{OPT(I)}<1+\frac{ms}{2(m+1)}. OPT(I)ALG(I)<1+2(m+1)ms.
综上:上界为 1+ms2(m+1)1 + \frac{ms}{2(m+1)}1+2(m+1)ms

7. 直观理解

这个证明的核心思想是:

  1. 对手利用迁移时间:通过周期性的负载变化,迫使在线算法不断迁移VM
  2. 最大化活跃主机数:让所有主机都保持活跃状态消耗能量
  3. 制造SLA违反:在部分主机上故意制造过载情况
  4. 离线算法优势:由于知道未来,可以静态分配VM,避免所有不必要的迁移和SLA违反

这个上界表明,在线算法的性能相对于最优离线算法最多差一个与 mmmsss 相关的常数因子。当 mmm 较大(即每台主机能容纳更多 VM)时,上界接近 1+s21+\frac{s}{2}1+2s,说明整合效率高;当 sss 较大(SLA 违反成本高)时,上界增加,说明避免 SLA 违反更重要。

4.3 Non-Deterministic Online Algorithms

4.3.1 非确定性在线算法的性能优势

已知非确定性(或随机化)的在线算法,通常在性能质量上优于其确定性的同类算法。

4.3.2 具体问题的竞争比预期

对于单虚拟机(VM)迁移问题:在线随机算法的竞争比会落在 Ts\frac{T}{s}sT2+s2+s2+s 之间;且当条件 i≥vi \geq viv 满足时,该算法会回退到 “最优在线确定性算法” 的表现;对于动态 VM 整合问题:在线随机算法的竞争比,预计会比 “Theorem 3” 中确定的上界有所改进。

4.3.3 竞争分析中的 “敌手” 差异

在竞争分析中,随机算法的分析对象(“敌手” 类型)与确定性算法不同:确定性算法面对的是 “全能恶意敌手”;随机算法常面对 “无记忆敌手”—— 这类敌手会在算法执行前生成完整输入序列,且输入生成依赖于算法的概率分布知识。

4.3.4 随机算法的分析方法与现实局限

分析随机算法的一种思路是 “平均情况性能分析”,即基于输入的分布模型评估算法。但现实工作负载的复杂性

突破了简单统计分布的建模能力:例如 Web 工作负载具有 “属性相关性、非平稳性、突发性、自相似性”;网格 / 集群工作负载的作业到达时间具有 “伪周期性、长程依赖性、多重分形标度”。

4.3.5 自适应算法与未来研究

提出自适应算法:依赖工作负载历史数据的统计分析,假设 “工作负载非完全随机、未来可通过历史预测”。但这类算法无法用 “无记忆敌手” 等简单模型分析,需更复杂的建模(如马尔可夫链);团队计划在未来研究中深入探索这些工作负载模型。

5 系统模型

这一章作者构建了一个完整的仿真环境模型,包括硬件架构、能耗模型、迁移成本和SLA评估指标,为后续提出的动态整合算法提供了实验基础和评估标准。这一章是理解后续算法设计与实验结果的关键前提。

5.1 系统目标与环境

系统是一个IaaS(基础设施即服务)环境,模拟一个大规模数据中心,其中包含异构的物理节点,每个节点有不同的CPU性能(以MIPS衡量)、内存和网络带宽。服务器没有本地磁盘,使用网络附加存储(NAS),以支持虚拟机的实时迁移(live migration)。

5.2 系统架构

系统采用分层管理结构。本地管理器(Local Manager)位于每个物理节点的VMM(虚拟机监控器)中,负责监控节点的CPU使用率、调整VM资源分配、决定何时迁移VM。全局管理器(Global Manager)位于主节点,收集各本地管理器的信息,维护全局资源视图,发出优化VM布局的指令。

5.3 多核CPU建模

将多核CPU(如n个核心,每个核心m MIPS)建模为单个CPU,总容量为 n×m MIPS。并且假设VM不需要并行多核执行,其CPU需求不超过单个核心的容量。

5.4 功耗模型

服务器功耗主要来自CPU、内存、存储、电源和冷却系统。作者引用研究指出,即使使用DVFS(动态电压频率调节),服务器功耗与CPU利用率之间仍存在线性关系。作者未使用理论模型,而是采用SPECpower基准测试的实际功耗数据。

5.5 虚拟机迁移成本

实时迁移会导致性能下降,尤其是对于I/O密集型或内存写入频繁的应用。迁移时间 TmT**m 取决于VM的内存使用量和可用网络带宽。性能下降估计为迁移期间CPU利用率的10%。

5.6 SLA违规度量

提出了两个指标来衡量服务质量:

  1. SLATAH:活动主机CPU利用率达到100%的时间比例。
  2. PDM:由于迁移导致的VM性能下降比例。

并定义一个综合指标:
SLAV=SLATAH⋅PDM. SLAV=SLATAH\cdot PDM. SLAV=SLATAHPDM.

6 动态虚拟机整合的自适应启发式算法

作者在这一章提出了几个基于对虚拟机资源使用历史数据分析的虚拟机动态整合启发式算法。首先,作者将“动态虚拟机整合”这个大问题拆解成了如下几个小问题:

  1. 确定主机何时被认为过载,从而需要从这台主机迁移一个或多个虚拟机;
  2. 确定主机何时被认为负载不足,进而导致做出从这台主机迁移所有虚拟机并将主机切换成睡眠模式的决定;
  3. 在过载的主机上选择迁移的虚拟机;
  4. 为从过载和欠载主机中选出用于迁移的虚拟机找到一种新的放置方式。

然后,作者解释了一个普遍的虚拟机放置优化算法 Algorithm 1。Algorithm 1的思路如下:首先,算法浏览主机列表,通过应用过载检测算法来检查某台主机是否过载。如果主机过载,算法应用虚拟机选择策略,从该主机中选择需要迁移的虚拟机。一旦构建好从过载主机中待迁移的虚拟机列表,就调用虚拟机放置算法,为待迁移的虚拟机寻找新的放置位置。该算法的第二阶段是寻找负载不足的主机,并对这些主机中的虚拟机进行放置。算法返回综合迁移映射,其中包含从过载和负载不足的主机中选择的待迁移虚拟机的新放置信息。该算法的复杂度为 2N2N2N,其中 NNN 是主机的数量。

6.1 主机过载检测

6.1.1 一种自适应利用率阈值:平均绝对偏差

在这一部分,作者首先介绍了他们曾经提出的一种基于利用率阈值主机迁移虚拟机时间决策的启发式方法。该方法的核心思想是为主机设置 CPU 利用率的上下阈值,并保持所有虚拟机对 CPU 的利用率之和在阈值范围内。如果有主机的 CPU 利用率低于下限,那么考虑迁移该主机上的所有虚拟机,并将主机切换成睡眠模式,以降低能耗;如果有主机的 CPU 利用率高于上限,那么考虑选择该主机上的虚拟机进行迁移,以避免 SLA 违规。

但是,固定利用率阈值的方法并不适用于动态或未知的工作负载环境。于是,作者基于对虚拟机生命周期内收集的历史数据的统计分析,提出了用于自动调整利用率阈值的新颖技术。该方法是一种鲁棒方法,适用于存在异常值或非正态分布的数据,核心思想是根据 CPU 利用率的偏离程度动态调整上限阈值:偏离程度越大,阈值越低。这种设计思路基于一个核心逻辑——CPU 利用率偏离程度越高,系统越可能遭遇100%的负载峰值,从而导致 SLA 违规。

稳健统计的出发点是生成不会因对模型假设的微小偏离而受到过度影响的估计量。The Median Absolute Deviation(MAD,中位数绝对偏差)是一种统计离散度的度量。它是一种比样本方差或标准差更稳健的尺度估计量,因为在处理无均值或方差的分布(如柯西分布)时,它的表现更优。MAD 是一种稳健统计量,相较于标准差,它对数据集中的异常值具有更强的抗干扰能力。在标准差中,与均值的距离会被平方,因此平均而言,大的偏差会被赋予更大的权重,异常值由此会严重影响它。而在 MAD 中,少量异常值的距离大小无关紧要。

对于单变量数据集 X1,X2,…,XnX_1, X_2, \dots, X_nX1,X2,,Xn,MAD 被定义为数据与其中位数的绝对偏差的中位数:
MAD=mediani(∣Xi−medianj(Xj)∣), MAD = \text{median}_i(|X_i - \text{median}_j(X_j)|), MAD=mediani(Ximedianj(Xj)),
也就是说,从数据中位数的残差(偏差)出发,MAD 是这些残差绝对值的中位数。我们按 MAD 定义式定义利用率上限阈值
Tu=1−s⋅MAD, T_u = 1 - s \cdot MAD, Tu=1sMAD,
其中 s∈R+s \in \mathbb{R}^+sR+ 是该方法的一个参数,用于定义系统整合虚拟机的激进程度。换句话说,sss 可调整该方法的安全性:sss 越小,能耗越低,但整合导致的 SLA 违规程度越高。

6.1.2 一种自适应利用率阈值:四分位距

这是第二种设置自适应上利用率阈值的方法,基于另一种稳健统计。在描述性统计中,interquartile range(IQR,四分位距)也被称为中间展布或中间五十,是一种统计离散度的度量,等于第三四分位数与第一四分位数的差值:IQR=Q3−Q1IQR = Q_3 - Q_1IQR=Q3Q1。与(总)极差不同,四分位距是一种稳健统计量,崩溃点为 25%,因此常比总极差更受青睐。对于对称分布(此时中位数等于中铰链,即第一和第三四分位数的平均值),四分位距的一半等于 MAD。使用四分位距定义利用率上限阈值为:
Tu=1−s⋅IQR, T_u = 1 - s \cdot IQR, Tu=1sIQR,
其中 s∈R+s \in \mathbb{R}^+sR+ 是该方法的一个参数,用于定义方法的安全性,MAD 方法中的参数 s 类似。

6.1.3 局部回归

基本思想
  • 利用时间序列趋势预测未来 CPU 利用率;
  • 若预测的利用率即将达到 100%,则提前迁移部分 VM;
  • 从而在性能退化前预防性地触发动态整合。
技术原理
  • 基于 Loess(Local Regression Smoothing) 方法;

  • 对主机最近的 CPU 利用率数据点执行局部加权回归:
    y=a+bx y=a+bx y=a+bx
    权重使用 三次立方权函数(tricube weight function):
    T(u)=(1−∣u∣3)3if ∣u∣<1 T(u)=(1-|u|^3)^3\quad\mathrm{if~}|u|<1 T(u)=(1u3)3if u<1

  • 权重越接近当前时刻的数据点,影响越大。

预测机制
  • 对最近 kkk 个时刻的 CPU 利用率数据进行拟合;
  • 计算趋势线 g^(x)=a^+b^x\hat{g}(x) = \hat{a} + \hat{b}xg^(x)=a^+b^x
  • 预测下一时刻 g^(xk+1)\hat{g}(x_{k+1})g^(xk+1) 的 CPU 利用率;
  • 若预测值超过阈值,则认为主机即将过载,触发 VM 迁移。
过载判定条件

s⋅g^(xk+1)≥1且xk+1−xk≤tm s⋅\hat{g}(x_{k+1}) \geq 1 \quad \text{且} \quad x_{k+1} - x_k \leq t_m sg^(xk+1)1xk+1xktm

  • sss:安全系数(调节能耗与性能权衡);
  • tmt_mtm:最长虚拟机迁移时间。
优点
  • 可动态适应 CPU 负载波动;
  • 相比固定阈值法,能更早预测并防止过载;
  • 能显著降低 SLA 违约率。
缺点
  • 对异常值敏感;
  • 若存在突发峰值或测量噪声,预测可能偏离真实趋势。

6.1.4 鲁棒局部回归

改进动机
  • LR 对异常点(outliers)过于敏感;
  • 在云环境中,突发负载峰值或测量误差较常见;
  • 因此作者引入鲁棒估计方法,使预测更稳定。
核心思想
  • 在 LR 的基础上,引入 双权重机制:
    1. 原始的 局部权重(Tricube);
    2. 基于残差的 鲁棒权重(Bisquare)。
鲁棒权重计算
  1. 计算 LR 初次拟合的残差:
    ε^i=yi−y^i \hat{\varepsilon}_i = y_i - \hat{y}_i ε^i=yiy^i

  2. 计算残差的中位绝对偏差(MAD):
    s=median(∣ε^i∣) s = \text{median}(|\hat{\varepsilon}_i|) s=median(ε^i)

  3. 基于双平方权函数(Bisquare function)赋予权重:
    ri=B(ε^i6s),B(u)=(1−u2)2 if ∣u∣<1 r_i = B\left(\frac{\hat{\varepsilon}_i}{6s}\right), \quadB(u) = (1 - u^2)^2 \text{ if } |u| < 1 ri=B(6sε^i),B(u)=(1u2)2 if u<1

  4. 最终的加权为:
    wi′=wi⋅ri w_i' = w_i \cdot r_i wi=wiri

算法流程
  • 第一步:使用 LR 对数据进行初步拟合;
  • 第二步:计算残差并更新权重;
  • 第三步:迭代回归,减小异常值对结果的影响;
  • 第四步:预测未来 CPU 利用率,判断是否过载。
优点
  • 能有效抵抗异常数据或突发负载的干扰;
  • 在复杂或波动性强的云负载中更稳定;
  • 比 LR 更能平衡能耗和 SLA 之间的关系。
缺点
  • 计算量略高于普通 LR;
  • 参数(如安全系数 s)需实验调优。

6.2 虚拟机选择

一旦确定某台主机处于过载状态,下一步就是从该主机上选择特定的虚拟机进行迁移。本节中,作者提出三种虚拟机选择策略。所述策略将迭代应用:在选择一台待迁移的虚拟机后,再次检查该主机是否仍处于过载状态;若其仍被判定为过载,则再次应用虚拟机选择策略,从该主机中选择另一台虚拟机进行迁移。这一过程将重复进行,直到该主机不再被认定为过载。

6.2.1 最小迁移时间策略

Minimum Migration Time (MMT),最小迁移时间策略。

由策略名字可知,MMT 策略选择完成迁移时间最小的虚拟机 vvv。其中,迁移时间被估计为虚拟机所使用的内存量除以主机 jjj 可用的空闲网络带宽。用 VjV_jVj 表示当前分配给主机 jjj 的 VMs 集合。MMT 策略目标是找到一个 VM vvv 满足:
v∈Vj∣∀a∈Vj,RAMu(v)NETj≤RAMu(a)NETj, v\in V_j|\forall a\in V_j,\frac{RAM_u(v)}{NET_j}\leq\frac{RAM_u(a)}{NET_j}, vVj∣∀aVj,NETjRAMu(v)NETjRAMu(a),
其中,RAMu(a)RAM_u(a)RAMu(a) 表示当前被 VM aaa 使用的 RAM;NETjNET_jNETj 表示 host jjj 可用的空闲网络带宽。

6.2.2 随机选择策略

Random Choice (RC),随机选择策略。

RC 策略根据一个均匀分布的离散随机变量 X=⁡dU(0,∣Vj∣)X\overset{d}{\operatorname*{=}}U(0,|V_j|)X=dU(0,Vj) 选择需要迁移的虚拟机,其数值对应分配给主机 jjj 的一组 VMs VjV_jVj

6.2.3 最大相关性策略

Maximum Correlation (MC),最大相关性策略。

MC 策略是基于 Verma et al. 所提出的理念。该理念是,服务器上运行的应用程序之间的资源使用相关性越高,该服务器发生过载的概率就越高。根据这个理念,所选择的 VMs 应该是 CPU 利用率相关性最高的。

如何估计 VMs 的 CPU 利用率相关性呢?选择在多元回归分析中,经常用于评估因变量的预测的准确性的方法 multiple correlation coefficient (多元相关系数)。多元相关系数相当于因变量的预测值与实际值之间的平方相关。它也可以被解释为因变量方差中由自变量所解释的比例。

我们用 X\mathbf{X}X 表示一个 (n−1)×n(n-1) \times n (n1)×n 的增广矩阵,其中包含 n−1n-1n1 个独立随机变量的观测值;用 y\mathbf{y}y 表示因变量 YYY(n−1)×1(n-1) \times 1 (n1)×1 观测值向量。矩阵 X\mathbf{X}X 被称为增广矩阵,因为其第一列仅由1组成。
X=[1x1,1…x1,n−1⋮⋮⋱⋮1xn−1,1…xn−1,n−1]y=[y1⋮yn] \left.\mathbf{X}=\left[ \begin{array} {cccc}1 & x_{1,1} & \ldots & x_{1,n-1} \\ \vdots & \vdots & \ddots & \vdots \\ 1 & x_{n-1,1} & \ldots & x_{n-1,n-1} \end{array}\right.\right]\quad\mathbf{y}= \begin{bmatrix} y_1 \\ \vdots \\ y_n \end{bmatrix} X=11x1,1xn1,1x1,n1xn1,n1y=y1yn
预测值向量 Y^\widehat{Y}Y 表示因变量 y^\widehat{y}y 的预测值,其计算方法如下:
y^=Xbb=(XTX)−1XTy. \widehat{\mathbf{y}}=\mathbf{X}\mathbf{b}\quad\mathbf{b}=\left(\mathbf{X}^\mathrm{T}\mathbf{X}\right)^{-1}\mathbf{X}^\mathrm{T}\mathbf{y}. y=Xbb=(XTX)1XTy.
在得到预测值向量后,我们现在可以计算多重相关系数 RY,1,...,n−12R_{Y,1,...,n-1}^2RY,1,...,n12,它等于因变量 YYY 的观测值 Y^\widehat{Y}Y 与预测值 y^\widehat{y}y 之间的相关系数的平方:
RY,X1,...,Xn−12=∑i=1n(yi−mY)2(y^i−mY^)2∑i=1n(yi−mY)2∑i=1n(y^i−mY^)2, R_{Y,X_1,...,X_{n-1}}^2=\frac{\sum_{i=1}^n(\mathbf{y}_i-m_Y)^2(\widehat{\mathbf{y}}_i-m_{\widehat{Y}})^2}{\sum_{i=1}^n(\mathbf{y}_i-m_Y)^2\sum_{i=1}^n(\widehat{\mathbf{y}}_i-m_{\widehat{Y}})^2}, RY,X1,...,Xn12=i=1n(yimY)2i=1n(yimY)2i=1n(yimY)2(yimY)2,
其中 mYm_YmYmY^m_{\widehat{Y}}mY 分别是 YYYY^\widehat{Y}Y 的样本均值。我们为每个 XiX_iXi 计算多重相关系数,记为 RXi,X1,...,Xi−1,Xi+1,...,Xn2R_{X_i,X_1,...,X_{i-1},X_{i+1},...,X_n}^2RXi,X1,...,Xi1,Xi+1,...,Xn2,MC 策略会找到 VM vvv 满足
v∈Vj∣∀a∈Vj,RXv,X1,...,Xv−1,Xv+1,...,Xn2≥RXv,X1,...,Xa−1,Xa+1,...,Xn2. v\in V_j|\forall a\in V_j,R_{X_v,X_1,...,X_{v-1},X_{v+1},...,X_n}^2\geq R_{X_v,X_1,...,X_{a-1},X_{a+1},...,X_n}^2. vVj∣∀aVj,RXv,X1,...,Xv1,Xv+1,...,Xn2RXv,X1,...,Xa1,Xa+1,...,Xn2.

6.3 虚拟机放置

虚拟机的放置可以看作包含各种各样尺寸和价格的装箱问题,其中箱子代表了物理节点,要被分配的虚拟机是物品,箱子的尺寸表示节点可用的 CPU 容量,价格对应于节点的电力消耗量。由于装箱问题是一个 NP 难问题,为了解决它,作者应用改进的 BFD 算法,这种改进被证明使用的箱子数量不超过 11/9⋅OPT+111/9 \cdot OPT+111/9OPT+1 个(其中 OPTOPTOPT 指的是最优解所提供的箱子数量)。在作者先前研究提出的改进的 BFD 算法—— PABFD 中,作者首先对所有虚拟机按当前CPU利用率降序排序,然后将每台虚拟机分配给能最大程度降低功耗的主机。这使得能够通过首先选择最节能的节点来利用节点的异构性。该算法的复杂度为 nmnmnm,其中 nnn 表示节点的数量,mmm 表示需要分配的虚拟机的数量。

注:

装箱问题(Bin Packing Problem)是一个经典的组合优化问题,其核心目标是:将一组不同大小的物品放入容量固定的箱子中,使所使用的箱子数量最少。

Algorithm 2: Power Aware Best Fit Decreasing (PABFD)


Input: hostList, vmList
Output: allocation of VMs

  1. vmList.sortDecreasingUtilization() // 按利用率降序排序虚拟机
  2. foreach vm in vmList do //遍历每一个虚拟机
  3.     minPower ← MAX // 初始化最小功耗变量,用于记录当前虚拟机在所有主机上的最小功耗值
  4.     allocatedHost ← NULL // 记录使功耗最小的主机
  5.     foreach host in hostList do // 遍历每一个主机
  6.         if host has enough resources for vm then // 检查资源是否足够
  7.             power ← estimatePower(host, vm) // 估算功耗
  8.             if power < minPower then // 找出最节能的主机
  9.                 allocatedHost ← host
  10.                 minPower ← power
  11.     if allocatedHost ≠ NULL then // 执行分配
  12.         allocation.add(vm, allocatedHost)
  13. return allocation // 返回分配结果

6.4 主机轻载检测

为了确定轻载主机,作者提出了一种简单的方法。首先,利用选定的过载检测算法识别所有已过载的主机,并将被选中的虚拟机迁移到目标主机上。随后,系统在剩余主机中找到利用率最低的那一台,并尝试将其上的虚拟机迁移到其他主机上,同时确保这些目标主机不会因此过载。如果迁移能够成功完成,则这些虚拟机将被设置为迁移至指定的目标主机,而源主机在所有迁移完成后会切换至睡眠模式。若源主机上的所有虚拟机都无法迁移到其他主机上,则该主机保持活跃状态。这一过程会在所有未被标记为过载的主机上迭代执行。

7 性能评估

7.1 实验设置

  • 使用 CloudSim 模拟工具来评估算法性能。
  • 硬件模型基于 HP ProLiant ML110 G4/G5 服务器:
    • 双核CPU,分别为 1860 MIPS 和 2660 MIPS。
    • 每台服务器 1 GB/s 网络带宽。
  • 虚拟机类型参照 Amazon EC2 实例类型,但均为单核。
  • 模拟过程中,虚拟机的资源需求随时间变化,从而形成动态负载,为动态合并(consolidation)提供实验条件。

7.2 性能指标

主要评估指标包括:

  1. 能耗(Energy Consumption):数据中心物理服务器在执行任务期间消耗的总能量。

  2. SLA 违约率(SLA Violations):

    • SLAV:总体 SLA 违约比例;
    • SLATAH:平均 SLA 违约时间;
    • PDM:性能降级度量。
  3. VM 迁移次数(Number of Migrations):用于评估算法在优化与稳定性之间的平衡。

  4. 综合指标 ESV(Energy and SLA Violations):

    ESV=E×SLAVESV = E \times SLAVESV=E×SLAV

    用以同时衡量能耗与服务质量损失。

7.3 工作负载数据

  • 使用来自 PlanetLab 的真实 VM 运行轨迹数据(CoMon 项目)。
  • 数据包含来自全球 500 多个节点、超过 1000 个 VM 的 10 天 CPU 利用率记录(采样间隔 5 分钟)。
  • 数据显示 CPU 平均利用率远低于 50%,说明存在显著的资源闲置空间。

7.4 仿真结果与分析

  • 实验对比多种动态 VM 合并算法,重点评估论文提出的自适应算法。
  • 基于局部回归(Local Regression, LR)算法,结合 最小迁移时间策略(MMT) 的方案,在 ESV 指标上表现最优:
    • 有效降低了 SLA 违约与迁移次数;
    • 实现了显著的能耗下降;
    • 在保证性能的前提下提升了数据中心整体能源效率。

8 结论与未来工作

8.1 主要结论

  • 云服务提供商要最大化投资回报率(ROI),必须采用节能型资源管理策略,如动态虚拟机合并和空闲服务器休眠。
  • 论文通过竞争性分析(competitive analysis),提出并证明了针对:
    1. 单虚拟机迁移;
    2. 多虚拟机动态合并;
      的最优在线确定性算法的竞争比。
  • 然而,确定性算法性能受限,论文指出需要发展随机化(randomized)或自适应(adaptive)算法。
  • 基于此,作者提出了利用历史资源使用数据的自适应启发式算法,可在能耗与性能之间取得更优平衡。

8.2 实验验证

  • 在大规模模拟实验中(>1000 个 PlanetLab VM 轨迹),
    • 局部回归 + MMT 策略显著优于其他算法;
    • 减少了 SLA 违约和 VM 迁移次数;
    • 提升了综合性能指标(ESV)。

8.3 未来研究方向

  1. 实际云平台验证:计划将所提系统集成进真实云基础设施(如 OpenStack)。
  2. 复杂工作负载建模:探索基于 马尔可夫链(Markov chain) 的动态负载模型。
  3. 算法改进:开发能利用这些复杂模型的更智能算法。
  4. 社会意义:通过降低能耗与碳排放,为绿色计算与可持续IT发展做出贡献。
http://www.dtcms.com/a/601892.html

相关文章:

  • 企业网站建设费多少钱硬盘做免费嗳暧视频网站
  • 做图在哪个网站上找南京自助建站模板
  • 山东市网站建设中国林业网站群建设工程
  • 大白话浅析Windows 安全核心机制
  • 【OpenCV + VS】OpenCV 随机数绘图:如何在图像中绘制随机线条
  • 个人网站可以做商城吗泰安人才信息网官网
  • 网站开发提供图片加载速度建设工程施工合同示范文本2021
  • sward实战教程系列(2) - 创建第一个知识库
  • iOS 内存管理之 autoreleasePool
  • 北京沙河教做网站的山东省济南市莱芜区
  • 长沙建长沙建网站公司给wordpress程序提速
  • 多国语言编译库 | 适用于全球化开发的高效工具
  • C语言编译系统 | 如何高效构建和使用C语言编译系统
  • 手机建设银行网站首页网站开发app开发主营业务
  • 11月12日星期三今日早报简报微语报早读
  • 360水滴摄像头重新设置摄像头wifi
  • Notepad++ 编译 C 语言的使用方法与技巧
  • 编译C语言的软件 | 轻松高效的C语言编译工具介绍
  • 企业网站设计特点建设银行网站怎么打印明细
  • C语言练习题——判断水仙花数(0-100000)
  • 广州好的网站建设昆明微网站搭建哪家好
  • 找国内外贸公司的网站深圳自己做网站
  • 视频融合平台EasyCVR:云台控制与语音对讲赋能远程交互式视频监控新场景
  • 做设计私活的网站php网站建设费用
  • next.js(二)——从react到next.js
  • Android开发自学笔记 --- 构建简单的UI视图
  • ubuntu 升级mysql由mysql5.7.42 升级到8.4.0
  • 项目实战Now in Android:项目模块说明
  • 自己做店铺网站宁波建设有限公司
  • 激活函数是什么,神经网络中为什么要有激活函数