C平稳过程和测量噪声卡尔曼滤波方程为:,kkkaaW(),kkkuCaV()ˆ(),kkkkkaaKuCa()(),TkkkKCPCPCR()ˆ(),kkkPICKP()ˆ,kkaa()ˆ,kkPPQ()其中nkaR和nkuR分别分配和使用向量并且每一行对应一个组件;nkWR是过程噪声矩阵;nkVR是测量噪声矩阵;nnCR是对角矩阵,对角线上是每个组件目标值c;nnkPR和ˆnnkPR是先验和后验误差协方差矩阵;nnkKR是卡尔曼增益矩阵;nnRR和nnQR分别是平稳测量和过程噪声协方差矩阵。对矩阵Q和R,对角元素对应于每个组件过程和测量噪声。矩阵Q非对角线元素取决于不同组件之间过程噪声协方差。同样,Kk矩阵非对角线元素对应于不同组件之间增益。对一个层应用程序来说,举个例子,一个后验值ˆ()ka估计可以独立运行服务器应用程序,或者是多层应用程序一部分虚拟机。、多输入多输出(MIMO)过程噪声协方差控制器,记为PNCC。该控制器调整多层应用程序所有虚拟机分配,利用两两之间协方差VM资源利用率来捕获组件之间相关性。与KBC控制器相比,PNCC目是给多层应用程序迅速分配资源。、自适应MIMOPNCC或者APNNC。APNCC像PNCC,对一个应用程序所有虚拟机分别分配CPU资源。然而,它可以自适应调整参数和自配置来适应不同负载条件。每个控制器分配CPU资源给虚拟机完全基于资源利用观测和应用程序性能模型。每个VM被视为一个可以运行应用程序一层或一个完整应用程序黑盒。术语层、组件和VM在文中交替使用。本节其余部分介绍了应用程序性能模型和控制器设计。.应用程序性能模型控制器使用一个简单和直观使用卡尔曼滤波增强应用程序性能模型来跟踪vmCPU资源利用率。控制器将CPU资源分配给虚拟机时只需要基于资源使用观测值以及应用程序性能模型。我们性能模型使用已知观测值。当服务器应用程序到达它服务饱和点,它性能,比如请求响应时间,会迅速恶化。为了维持好性能,服务器应用程序需要被分配比当前使用值更多资源。然而,由于变化工作负载,将资源分配值维持在高于需求状态往往造成在使用值上大偏差。将时变CPU使用率作为一个一维随机游动值,建立以下线性随机差分方程:kkkvvt,()其中kv表示在k时刻真实使用占总CPU比重,独立随机变量kt表示过程噪声,并假定它正态分布。直观来看,在一个服务器系统,在时刻k+CPU使用率通常会依赖于k时刻CPU使用情况,并在此基础上加上一定噪声以引起变化。如果kv已知,为了获得一个好应用性能,控制器需要将资源分配与使用差值维持在一个可控范围内。.控制器设计如前所述,我们控制器使用卡尔曼滤波跟踪并更新相应分配。这种方法本质上使用过滤技术来消除CPU利用率信号来自瞬态负载变化噪音,同时发现其主要波动。卡尔曼滤波是一种数据处理方法,基于噪声测量以递归方式来进行线性随机系统状态估计[]。卡尔曼滤波器基于以下两点假设:()系统能用线性方程表示;()过程和测量噪声是高斯白噪声。同时也有计算上吸引力,因为它递归计算,因为下一个估计产生只需要更新后测量结果和先前预测。..KBCSISOKBC控制器是单个vm跟踪控制器。在本节提出所有指标是标量,指是单个组件。定义a为分配给VMCPU资源,u为测量CPU使用率。建立资源分配模型如下:kkkaaz,()相关使用率测量值模型为:kkkucaw,()其中c记为真实使用值与分配值之间差值,可以根据服务器应用程序或者虚拟机而更改。独立随机变量kz和kw分别表示过程噪声和量测噪声,并假定它们满足正态分布:()~(,)pzNQ()()~(,)pwNR()量测噪声方差R在每一步或者测量时都可能会发生变化,过程噪声方差Q几乎肯定会改变,反应了不同系统动力学。然而在这里,我们假设在滤波过程中它们是稳定。方程()和()描述系统动力学,直接应用卡尔曼滤波理论得出为下一个时间间隔所需配置,这里使用跟踪使用情况vk,测量值uk和随后分配值ak+。这个过程如下:ka被定义为CPU一个先验估计分配,即在k时刻基于先前测量预测估计分配。ˆka是一个后验CPU分配估计,即基于新测量值正确分配估计值。类似,kP是一个先验错误方差估计,ˆkP是一个后验估计。在下一个k+时刻预测先验分配是:ˆkkaa()正确后验估计是:ˆ()kkkkkaaKuca()在时刻K+开始时,控制器得到一个先验ka分配。如果ka超过可用物理资源,控制器分配最大可用值;因此过滤器只活跃在工作负载低于总资源情况即动力学系统是线性时。实际和预测之间修正卡尔曼增益测量是:()kkkKcPcPR()卡尔曼增益kK在多次迭代后稳定。误差方差先验和后验估计分别为:ˆ()kkkPcKP()kkPPQ()卡尔曼增益:卡尔曼增益在下一轮计算分配时是很重要。这是一个Q和R函数,描述了动态系统。一般来说,kK随Q和R单调增加。这可以直观地解释:考虑一个系统与大过程噪声Q。其状态经历巨大变化,这在任何测量中可以被观察到。过滤器应该增加对产生新错误信心(预测状态和测量之间差别),而不是目前预测,为了跟上高度可变测量。因此卡尔曼增益是相当大。另一方面,当测量噪声R增加,新测量包括测量误差出现偏差。过滤器应该降低其对新错误信心,在这种情况下,卡尔曼增益值相对较小。此外,通过扩展Q和R值,卡尔曼增益值可以使控制器在不同过滤模式下运作。在第四节这可以被我们研究结果验证。..PNCCMIMOPNCC控制器进一步扩展了KBC控制器,考虑在多层应用程序组件使用率之间资源配对。(利用多层不同组件服务器相关组件一起工作以来为传入请求服务)。像KBC,PNCC基于自身错误调整每个组件分配。但是此外,使用协方差过程噪声,同时基于其他组件造成错误进行调整。如果n是应用程序组件数量,那么PNCC平稳过程和测量噪声卡尔曼滤波方程为:,kkkaaW(),kkkuCaV()ˆ(),kkkkkaaKuCa()(),TkkkKCPCPCR()ˆ(),kkkPICKP()ˆ,kkaa()ˆ,kkPPQ()其中nkaR和nkuR分别分配和使用向量并且每一行对应一个组件;nkWR是过程噪声矩阵;nkVR是测量噪声矩阵;nnCR是对角矩阵,对角线上是每个组件目标值c;nnkPR和ˆnnkPR是先验和后验误差协方差矩阵;nnkKR是卡尔曼增益矩阵;nnRR和nnQR分别是平稳测量和过程噪声协方差矩阵。对矩阵Q和R,对角元素对应于每个组件过程和测量噪声。矩阵Q非对角线元素取决于不同组件之间过程噪声协方差。同样,Kk矩阵非对角线元素对应于不同组件之间增益。对一个层应用程序来说,举个例子,一个后验值ˆ()ka估计i,W.Zwaenepoel,E.Cecchet,andJ.Marguerite.SpecificationandImplementationofDynamicWebSiteBenchmarks.InProc.ofWWC-,pages–,.[]P.Barham,B.Dragovic,K.Fraser,S.Hand,T.Harris,A.Ho,R.Neugebauer,I.Pratt,andA.Warfield.XenandtheArtofVirtualization.InProc.ofSOSP,pages–,.[]J.S.Chase,D.C.Anderson,P.N.Thakar,A.Vahdat,andR.P.Doyle.ManagingEnergyandServerResourcesinHostingCentres.InProc.ofSOSP,pages–,.[]G.Jung,K.R.Joshi,M.A.Hiltunen,R.D.Schlichting,andC.Pu.GeneratingAdaptationPoliciesforMulti-tierApplicationsinConsolidatedServerEnvironments.InProc.ofICAC,pages–,.[]R.E.Kalman.ANewApproachtoLinearFilteringandPredictionProblems.TransactionoftheASME–JournalofBasicEngineering,(SeriesD):–,.[]E.Kalyvianaki,T.Charalambous,andS.Hand.ApplyingKalmanFiltertoDynamicallyResourceProvisioningofVirtualizedServerApplications.InProc.ofFeBID,pages–,.[]M.KimandB.Noble.MobileNetworkEstimation.InProc.ofMobiCom,pages–,.[]X.Liu,X.Zhu,P.Padala,Z.Wang,andS.Singhal.OptimalMultivariateControlforDifferentiatedServicesonaSharedHostingPlatform.InProc.oftheIEEECDC,pages–,.[]P.Padala,K.Shin,X.Zhu,M.Uysal,Z.Wang,S.Singhal,A.Merchant,andK.Salem.AdaptiveControlofVirtualizedResourcesinUtilityComputingEnvironments.InProc.ofEuroSys,pages–,.[]B.UrgaonkarandP.Shenoy.Sharc:ManagingCPUandNetworkBandwidthinSharedClusters.IEEETPDS,():–,.[]B.Urgaonkar,P.Shenoy,andT.Roscoe.ResourceOverbookingandApplicationProfilinginSharedHostingPlatforms.InProc.ofOSDI,.[]Z.Wang,X.Liu,A.Zhang,C.Stewart,X.Zhu,T.Kelly,andS.Singhal.AutoParam:AutomatedControlofApplication-LevelPerformanceinVirtualizedServerEnvironments.InProc.ofFeBID,.[]Z.Wang,X.Zhu,andS.Singhal.UtilizationandSLO-BasedControlforDynamicSizingofResourcePartitions.InProc.ofDSOM,pages–,.[]J.Xu,M.Zhao,J.Fortes,R.Carpenter,andM.Yousif.OntheUseofFuzzyModelinginVirtualizedDataCenterManagement.InProc.OfICAC,.[]T.Zheng,J.Yang,M.Woodside,M.Litoiu,andG.Iszlai.TrackingTime-VaryingParametersinSoftwareSystemswithExtendedKalmanFilters.InProc.ofCASCON,.[]X.Zhu,Z.Wang,andS.Singhal.Utility-rivenWorkloadManagementusingNestedControlDesign.InProc.oftheAmericanControlConference,.可以独立运行服务器应用程序,或者是多层应用程序一部分虚拟机。、多输入多输出(MIMO)过程噪声协方差控制器,记为PNCC。该控制器调整多层应用程序所有虚拟机分配,利用两两之间协方差VM资源利用率来捕获组件之间相关性。与KBC控制器相比,PNCC目是给多层应用程序迅速分配资源。、自适应MIMOPNCC或者APNNC。APNCC像PNCC,对一个应用程序所有虚拟机分别分配CPU资源。然而,它可以自适应调整参数和自配置来适应不同负载条件。每个控制器分配CPU资源给虚拟机完全基于资源利用观测和应用程序性能模型。每个VM被视为一个可以运行应用程序一层或一个完整应用程序黑盒。术语层、组件和VM在文中交替使用。本节其余部分介绍了应用程序性能模型和控制器设计。.应用程序性能模型控制器使用一个简单和直观使用卡尔曼滤波增强应用程序性能模型来跟踪vmCPU资源利用率。控制器将CPU资源分配给虚拟机时只需要基于资中文字使用卡尔曼滤波器为虚拟服务器提供自适应和自配置CPU资源配置EvangeliaKalyvianakiThemistoklisCharalambousStevenHand出处:Inproceedingof:ProceedingsofthethInternationalConferenceonAutonomicComputing,ICAC,June-,,Barcelona,Spain摘要:数据中心虚拟化可以使用节约成本服务器整合,服务器整合不仅能增加系统吞吐量还能减少电力消耗。虚拟服务器资源管理是一个重要和富有挑战任务,特别是当负载变化很大,以及要处理复杂多层服务器应用时。最近将控制理论应用到资源管理显示了很好效果。可以将控制理论应用到动态资源分配以匹配变化负载。本文提出了一种新资源管理方案,将卡尔曼滤波器应用到反馈控制器,来动态地将CPU资源分配给运行着服务器应用程序虚拟机。这个方法创新点在于卡尔曼滤波器使用——最优状态滤波技术——通过追踪CPU使用,来相应更新资源分配。我们控制器通过持续检测来自适应预测工作负载强度变化。我们控制器不需要任何先验知识。在高强度工作负载变化下,负载感知控制器性能恶化控制在.以下,在中等强度下也表现得很好。另外,我们控制器在处理多层服务器应用时性能提高:通过使用在应用程序组件间成对资源配对,当出现大量意料外工作负载增加时平均服务器性能与没有使用这种方法比时提高。我们通过控制一个部署在Xen虚拟化集群层Rubis基准程序来评估我们技术。分类和主题描述C.(系统性能):测量技术,建模技术。一般术语:管理、测量和性能。、引言由于硬件设施虚拟化,数据中心格局正在改变。一台物理服务器可以转成一台或多台虚拟机,这多台虚拟机共享提供硬件资源,应用程序在这些相互隔离虚拟机环境中运行。每台虚拟机都有生命周期管理,包括创建,删除,暂停,在物理服务器间迁移和运行时资源分配等管理操作。这些特征允许在应用程序和物理服务器之间资源任意组合,允许提供有效服务器整合。然而,负载需求经常会随着时间变化,而使得其难以估计。变化工作负载会引起种类多样变化对于系统组件资源需求。对于创造一个高性能服务器整合环境,遵循变化负载动态资源分配显得十分重要。事实上,如果每个应用程序能被合理提供资源,那么额外资源可以被使用,比如去运行其他应用程序,或者提高现有系统吞吐量。在本文中,我们提出一个创新控制分配方法,集成卡尔曼滤波技术[]到一组反馈控制器来动态地为多层虚拟化应用程序提供CPU资源。在仿真环境中卡尔曼滤波器之前已经使用来估计排队模型参数[],但是,据我们所知,这是第一次直接使用卡尔曼滤波器跟踪虚拟服务器CPU利用率,来引导它们资源分配。我们将分配问题公式化为CPU利用率追踪问题,控制器旨在追踪和维持CPU资源分配高于CPU实际利用一段范围。这是一个直观方法,资源配置时为每个虚拟机分配其需要资源。将CPU配置保持在一个可参考输入已被商业产品(例如惠普工作负载管理器)和其他研究原型[、]采纳。然而我们控制器独有非常强大将过滤技术整合到线性反馈控制器。本文如下部分组织如下。第二节进一步得激励资源配置和我们方法和卡尔曼滤波器使用。第三节介绍应用程序性能模型和控制器。第四节描述Rubis基准测试程序和我们评估平台,并且呈现我们实验结果。第五节介绍相关工作。最后第六节总结和展望未来。、研究目资源配置虚拟化技术应用广泛属于两个主要类别:(a)没有约束;(b)基于约束。在没有约束供应时,每个应用程序能够最大化使用托管服务器物理能力。这种方法是管理简单,因此易于实现。然而,它并不提供任何应用程序性能保证,尤其是在争资源条件下时[]。任何应用程序都可以控制资源使其余程序处于饥饿状态。此外,由于驻留应用程序CPU使用率不断变化,很难估计每台物理机可用免费资源,从而使任何方面整合规划应用程序性能难以落实。在基于约束资源配置中,每个应用程序限制使用物理资源一个子集,流行方法包括基于限制和自适应阈值上限配置方法。例如,VMwareDRS资源管理工具[]将CPU资源利用率限制在用户配置上下限间。这种方法优点是双重。首先,由于使用下限保证最低应用程序性能。其次,由于所有共存虚拟机不能超过总资源利用上限,可以估计运行额外应用程序需要免费可用资源。虽然基于限制整合配置是对于保证性能一种简单而有效机制,当应用程序运行不同经常改变工作负载它可能失效。性能违规行为发生在应用程序需要比上限更多资源,而当应用程序需要甚至低于它下限时资源被浪费。基于自适应上限阈值资源配置解决这些缺点。在这种情况下,一个VM不断更新可以使用最大资源。为了总是满足应用程序性能,为每个应用程序动态分配适应工作负载需求。这种机制允许其他应用程序基于可用免费资源进行合并。也曾出现过一些系统,通过控制理论使用这种基本方法(例如[])。在本文中,我们提出一个新基于理论vm资源配置管理系统,使用一个简单性能模型和卡尔曼滤波来跟踪有噪声资源利用率和更新资源配置。我们方法创新点在于将过滤技术整合到反馈控制器。我们选择卡尔曼滤波器因为它是最优线性滤波技术,在一定条件下,即使条件松弛仍具有良好性能。使用过滤方法使我们控制器在不同工作负载下操作顺利。我们也加深了我们工作,通过使用资源组件配对耦合多层应用程序能更快调整工作负载变化。最后,也是最重要是,在没有任何先验信息下,我们提供一个零设定机制来检测并适应工作负载条件。、系统本文介绍了种基于卡尔曼反馈控制器:、单输入单输出(SISO)卡尔曼基本控制器,以后记为KBC。这个控制器动态分配CPU资源给各个可以独立运行服务器应用程序,或者是多层应用程序一部分虚拟机。、多输入多输出(MIMO)过程噪声协方差控制器,记为PNCC。该控制器调整多层应用程序所有虚拟机分配,利用两两之间协方差VM资源利用率来捕获组件之间相关性。与KBC控制器相比,PNCC目是给多层应用程序迅速分配资源。、自适应MIMOPNCC或者APNNC。APNCC像PNCC,对一个应用程序所有虚拟机分别分配CPU资源。然而,它可以自适应调整参数和自配置来适应不同负载条件。每个控制器分配CPU资源给虚拟机完全基于资源利用观测和应用程序性能模型。每个VM被视为一个可以运行应用程序一层或一个完整应用程序黑盒。术语层、组件和VM在文中交替使用。本节其余部分介绍了应用程序性能模型和控制器设计。.应用程序性能模型控制器使用一个简单和直观使用卡尔曼滤波增强应用程序性能模型来跟踪vmCPU资源利用率。控制器将CPU资源分配给虚拟机时只需要基于资源使用观测值以及应用程序性能模型。我们性能模型使用已知观测值。当服务器应用程序到达它服务饱和点,它性能,比如请求响应时间,会迅速恶化。为了维持好性能,服务器应用程序需要被分配比当前使用值更多资源。然而,由于变化工作负载,将资源分配值维持在高于需求状态往往造成在使用值上大偏差。将时变CPU使用率作为一个一维随机游动值,建立以下线性随机差分方程:kkkvvt,()其中kv表示在k时刻真实使用占总CPU比重,独立随机变量kt表示过程噪声,并假定它正态分布。直观来看,在一个服务器系统,在时刻k+CPU使用率通常会依赖于k时刻CPU使用情况,并在此基础上加上一定噪声以引起变化。如果kv已知,为了获得一个好应用性能,控制器需要将资源分配与使用差值维持在一个可控范围内。.控制器设计如前所述,我们控制器使用卡尔曼滤波跟踪并更新相应分配。这种方法本质上使用过滤技术来消除CPU利用率信号来自瞬态负载变化噪音,同时发现其主要波动。卡尔曼滤波是一种数据处理方法,基于噪声测量以递归方式来进行线性随机系统状态估计[]。卡尔曼滤波器基于以下两点假设:()系统能用线性方程表示;()过程和测量噪声是高斯白噪声。同时也有计算上吸引力,因为它递归计算,因为下一个估计产生只需要更新后测量结果和先前预测。..KBCSISOKBC控制器是单个vm跟踪控制器。在本节提出所有指标是标量,指是单个组件。定义a为分配给VMCPU资源,u为测量CPU使用率。建立资源分配模型如下:kkkaaz,()相关使用率测量值模型为:kkkucaw,()其中c记为真实使用值与分配值之间差值,可以根据服务器应用程序或者虚拟机而更改。独立随机变量kz和kw分别表示过程噪声和量测噪声,并假定它们满足正态分布:()~(,)pzNQ()()~(,)pwNR()量测噪声方差R在每一步或者测量时都可能会发生变化,过程噪声方差Q几乎肯定会改变,反应了不同系统动力学。然而在这里,我们假设在滤波过程中它们是稳定。方程()和()描述系统动力学,直接应用卡尔曼滤波理论得出为下一个时间间隔所需配置,这里使用跟踪使用情况vk,测量值uk和随后分配值ak+。这个过程如下:ka被定义为CPU一个先验估计分配,即在k时刻基于先前测量预测估计分配。ˆka是一个后验CPU分配估计,即基于新测量值正确分配估计值。类似,kP是一个先验错误方差估计,ˆkP是一个后验估计。在下一个k+时刻预测先验分配是:ˆkkaa()正确后验估计是:ˆ()kkkkkaaKuca()在时刻K+开始时,控制器得到一个先验ka分配。如果ka超过可用物理资源,控制器分配最大可用值;因此过滤器只活跃在工作负载低于总资源情况即动力学系统是线性时。实际和预测之间修正卡尔曼增益测量是:()kkkKcPcPR()卡尔曼增益kK在多次迭代后稳定。误差方差先验和后验估计分别为:ˆ()kkkPcKP()kkPPQ()卡尔曼增益:卡尔曼增益在下一轮计 中文11344字使用卡尔曼滤波器为虚拟服务器提供自适应和自配置的CPU资源配置EvangeliaKalyvianakiThemistoklisCharalambousStevenHand出处:Inproceedingof:Proceedingsofthe6thInternationalConferenceonAutonomicComputing,ICAC2009,June15-19,2009,Barcelona,Spain摘要:数据中心虚拟化可以使用节约成本的服务器整合,服务器整合不仅能增加系统的吞吐量还能减少电力消耗。
虚拟服务器的资源管理是一个重要和富有挑战的任务,特别是当负载变化很大,