外文翻译——使用卡尔曼滤波器为虚拟服务器提供自适应和自配置的CPU资源配置资料.doc
《外文翻译——使用卡尔曼滤波器为虚拟服务器提供自适应和自配置的CPU资源配置资料.doc》由会员分享,可在线阅读,更多相关《外文翻译——使用卡尔曼滤波器为虚拟服务器提供自适应和自配置的CPU资源配置资料.doc(17页珍藏版)》请在一课资料网上搜索。
1、使用卡尔曼滤波器为虚拟服务器提供自适应和自配置的 CPU资源配置 摘要:数据中心虚拟化可以使用节约成本的服务器整合,服务器整合不仅能增加系统的吞吐量还能减少电力消耗。虚拟服务器的资源管理是一个重要和富有挑战的任务,特别是当负载变化很大,以及要处理复杂的多层服务器应用时。最近的将控制理论应用到资源管理显示了很好的效果。可以将控制理论应用到动态资源分配以匹配变化的负载。本文提出了一种新的资源管理方案,将卡尔曼滤波器应用到反馈控制器,来动态地将CPU资源分配给运行着服务器应用程序的虚拟机。这个方法的创新点在于卡尔曼滤波器的使用最优的状态滤波技术通过追踪CPU的使用,来相应的更新资源的分配。我们的控制
2、器通过持续的检测来自适应的预测工作负载强度的变化。我们的控制器不需要任何先验知识。在高强度的工作负载变化下,负载感知的控制器的性能恶化控制在4.8%以下,在中等强度下也表现得很好。另外,我们的控制器在处理多层的服务器应用时性能提高:通过使用在应用程序组件间的成对的资源配对,当出现大量意料外的工作负载的增加时平均服务器性能与没有使用这种方法比时提高3%。我们通过控制一个部署在Xen虚拟化集群的3层Rubis基准程序来评估我们的技术。分类和主题描述C.4(系统性能):测量技术,建模技术。一般术语:管理、测量和性能。1、引言 由于硬件设施的虚拟化,数据中心的格局正在改变。一台物理服务器可以转成一台或
3、多台虚拟机,这多台虚拟机共享提供的硬件资源,应用程序在这些相互隔离的虚拟机环境中运行。每台虚拟机都有生命周期管理,包括创建,删除,暂停,在物理服务器间迁移和运行时资源分配等管理操作。这些特征允许在应用程序和物理服务器之间资源任意组合,允许提供有效的服务器整合。然而,负载需求经常会随着时间变化,而使得其难以估计。变化的工作负载会引起种类多样的变化的对于系统组件的资源需求。对于创造一个高性能的服务器整合环境,遵循变化的负载的动态资源分配显得十分重要。事实上,如果每个应用程序能被合理的提供资源,那么额外的资源可以被使用,比如去运行其他的应用程序,或者提高现有系统的吞吐量。在本文中,我们提出一个创新的
4、控制分配方法,集成卡尔曼滤波技术7到一组反馈控制器来动态地为多层虚拟化应用程序提供CPU资源。在仿真环境中卡尔曼滤波器之前已经使用来估计排队模型的参数17,但是,据我们所知,这是第一次直接使用卡尔曼滤波器跟踪虚拟服务器的CPU利用率,来引导它们的资源分配。我们将分配问题公式化为CPU利用率追踪问题,控制器旨在追踪和维持CPU资源分配高于CPU实际的利用一段范围。这是一个直观的方法,资源配置时为每个虚拟机分配其需要的资源。将CPU配置保持在一个可参考的输入已被商业产品(例如惠普工作负载管理器) 和其他研究原型15、11采纳。然而我们的控制器独有的非常强大的将过滤技术整合到线性反馈控制器。本文如下
5、部分组织如下。第二节进一步得激励资源配置和我们的方法和卡尔曼滤波器的使用。第三节介绍应用程序性能模型和控制器。第四节描述Rubis基准测试程序和我们的评估平台,并且呈现我们的实验结果。第五节介绍相关工作。最后第六节总结和展望未来。2、研究目的资源配置虚拟化技术应用广泛属于两个主要类别:(a)没有约束的; (b)基于约束的。在没有约束的供应时, 每个应用程序能够最大化使用托管服务器的物理能力。这种方法是管理简单,因此易于实现。然而,它并不提供任何应用程序的性能保证,尤其是在争资源的条件下时11。任何应用程序都可以控制资源使其余程序处于饥饿状态。此外,由于驻留的应用程序的CPU使用率的不断变化,很
6、难估计每台物理机可用的免费资源,从而使任何方面的整合规划应用程序性能难以落实。在基于约束的资源配置中,每个应用程序限制使用物理资源的一个子集,流行的方法包括基于限制的和自适应阈值上限的配置的方法。例如,VMware DRS资源管理工具1将CPU资源利用率限制在用户配置的上下限间。这种方法的优点是双重的。首先, 由于使用下限保证最低的应用程序的性能。其次,由于所有共存的虚拟机不能超过总资源利用上限,可以估计运行额外的应用程序需要的免费可用资源。虽然基于限制的整合配置是对于保证性能的一种简单而有效的机制,当应用程序运行不同的经常改变的工作负载它可能失效。性能违规行为发生在应用程序需要比上限更多的资
7、源,而当应用程序需要甚至低于它的下限时资源被浪费。基于自适应上限阈值的资源配置解决这些缺点。在这种情况下,一个VM不断更新可以使用的最大资源。为了总是满足应用程序的性能,为每个应用程序动态分配适应工作负载需求。这种机制允许其他应用程序基于可用的免费资源进行合并。也曾出现过一些系统, 通过控制理论使用这种基本方法 (例如11)。在本文中,我们提出一个新的基于理论的vm资源配置管理系统,使用一个简单的性能模型和卡尔曼滤波来跟踪有噪声的资源利用率和更新资源配置。我们的方法的创新点在于将过滤技术整合到反馈控制器。我们选择卡尔曼滤波器因为它是最优线性滤波技术,在一定条件下, 即使条件松弛仍具有良好的性能
8、。使用过滤方法使我们的控制器在不同的工作负载下操作顺利。我们也加深了我们的工作,通过使用资源组件配对的耦合多层应用程序能更快调整工作负载的变化。最后,也是最重要的是, 在没有任何先验信息下,我们提供一个零设定机制来检测并适应工作负载条件。3、系统本文介绍了3种基于卡尔曼的反馈控制器:1、 单输入单输出(SISO)卡尔曼基本控制器,以后记为KBC。这个控制器动态分配CPU资源给各个可以独立运行服务器应用程序,或者是多层应用程序的一部分的虚拟机。2、 多输入多输出(MIMO)过程噪声协方差控制器,记为PNCC。该控制器调整多层应用程序的所有虚拟机的分配,利用两两之间的协方差的VM资源利用率来捕获组
9、件之间的相关性。与KBC控制器相比,PNCC的目的是给多层应用程序迅速分配资源。3、 自适应MIMO PNCC 或者APNNC。APNCC像PNCC ,对一个应用程序的所有虚拟机分别分配CPU资源。然而,它可以自适应调整参数和自配置来适应不同负载条件。每个控制器分配CPU资源给虚拟机完全基于资源利用观测和应用程序的性能模型。每个VM被视为一个可以运行应用程序的一层或一个完整的应用程序的黑盒。术语层、组件和VM在文中交替使用。本节的其余部分介绍了应用程序的性能模型和控制器的设计。31 应用程序的性能模型控制器使用一个简单的和直观的使用卡尔曼滤波增强的应用程序性能模型来跟踪vm的CPU资源利用率。
10、控制器将CPU资源分配给虚拟机时只需要基于资源使用的观测值以及应用程序性能模型。我们的性能模型使用已知的观测值。当服务器应用程序到达它的服务饱和点,它的性能,比如请求响应时间,会迅速恶化。为了维持好的性能,服务器应用程序需要被分配比当前的使用值更多的资源。然而,由于变化的工作负载,将资源分配值维持在高于需求的状态往往造成在使用值上的大的偏差。将时变的CPU使用率作为一个一维随机游动的值,建立以下的线性随机差分方程: , (1)其中表示在k时刻真实使用的占总的CPU的比重,独立的随机变量表示过程噪声,并假定它正态分布。直观来看,在一个服务器系统,在时刻k+1的CPU使用率通常会依赖于k时刻的CP
11、U使用情况,并在此基础上加上一定的噪声以引起变化。如果已知,为了获得一个好的应用性能,控制器需要将资源分配与使用差值维持在一个可控的范围内。3.2 控制器设计如前所述,我们的控制器使用卡尔曼滤波跟踪并更新相应的分配。这种方法本质上使用过滤技术来消除CPU利用率信号的来自瞬态负载变化的噪音,同时发现其主要的波动。卡尔曼滤波是一种数据处理方法, 基于噪声测量的以递归的方式来进行线性随机系统的状态估计7。卡尔曼滤波器基于以下两点假设:(1)系统能用线性方程表示;(2)过程和测量噪声是高斯白噪声。同时也有计算上的吸引力,因为它的递归计算,因为下一个估计的产生只需要更新后的测量结果和先前的预测。3.2.
12、1 KBC SISO KBC控制器是单个vm跟踪控制器。在本节提出的所有指标是标量,指的是单个组件。定义为分配给VM的CPU资源,为测量的CPU使用率。建立资源分配模型如下:, (2)相关的使用率的测量值模型为: , (3)其中记为真实的使用值与分配值之间的差值,可以根据服务器应用程序或者虚拟机而更改。独立的随机变量和分别表示过程噪声和量测噪声,并假定它们满足正态分布: (4) (5)量测噪声方差在每一步或者测量时都可能会发生变化,过程噪声方差几乎肯定会改变,反应了不同的系统动力学。然而在这里,我们假设在滤波过程中它们是稳定的。方程(2)和(3)描述系统动力学, 直接应用卡尔曼滤波理论得出为下
13、一个时间间隔所需的配置,这里使用跟踪使用情况vk ,测量值uk和随后的分配值ak + 1。这个过程如下:被定义为CPU的一个先验的估计分配,即在k时刻的基于先前测量的预测估计分配。是一个后验的CPU分配估计,即基于新的测量值的正确的分配估计值。类似的,是一个先验的错误方差的估计,是一个后验估计。在下一个k+1时刻的预测的先验分配是: (6)正确的后验估计是: (7)在时刻K+1开始时,控制器得到一个先验分配。如果超过可用的物理资源,控制器分配最大可用值;因此过滤器只活跃在工作负载低于总资源情况即动力学系统是线性时。实际和预测之间的修正卡尔曼增益测量是: (8)卡尔曼增益在多次迭代后稳定。误差方
14、差的先验和后验估计分别为: (9) (10)卡尔曼增益:卡尔曼增益在下一轮计算分配时是很重要的。这是一个Q和R 的函数,描述了动态系统。一般来说,随Q和R单调增加。这可以直观地解释:考虑一个系统与大的过程噪声Q。其状态经历巨大的变化,这在任何测量中可以被观察到。过滤器应该增加对产生新错误的信心(预测状态和测量之间的差别),而不是目前的预测,为了跟上高度可变的测量。因此卡尔曼增益是相当大的。另一方面,当测量噪声R增加,新的测量包括测量误差出现偏差。过滤器应该降低其对新错误的信心,在这种情况下,卡尔曼增益值相对较小。此外,通过扩展Q和R的值,卡尔曼增益值可以使控制器在不同的过滤模式下运作。在第四节
15、这可以被我们的研究结果验证。3.2.2 PNCC MIMO PNCC控制器进一步扩展了KBC控制器,考虑在多层应用程序的组件使用率之间的资源配对。(利用多层不同组件的服务器相关组件一起工作以来为传入的请求服务)。像KBC,PNCC基于自身的错误调整每个组件的分配。但是此外,使用协方差过程噪声,同时基于其他组件造成的错误进行调整。如果n是应用程序组件的数量,那么PNCC平稳过程和测量噪声的卡尔曼滤波方程为: (11) (12) (13) (14) (15) (16) (17)其中和分别分配和使用向量并且每一行对应一个组件; 是过程噪声矩阵; 是测量噪声矩阵;是对角矩阵,对角线上是每个组件的目标值
16、c;和是先验和后验的误差协方差矩阵;是卡尔曼增益矩阵; 和分别是平稳测量和过程噪声的协方差矩阵。对矩阵Q和R,对角元素对应于每个组件的过程和测量噪声。矩阵Q的非对角线元素取决于不同组件之间的过程噪声协方差。同样, Kk矩阵的非对角线元素对应于不同组件之间的增益。对一个3层应用程序来说,举个例子,一个后验值估计在时刻k的第一个组件的配置先验估计的结果加上从所有组件的修正,式子如下: (18)本例中的协方差表示利用率变化组件之间的耦合。3.2.3 适应性-PNCC (APNCC)到目前为止,只有平稳过程和测量噪音被考虑。两个控制器可以很容易地扩展以适应考虑非平稳噪声的操作条件。例如在PNCC控制器
17、的情况下,所有的公式都像以前一样,但是稳定的Q,改用动态Qk。在这种情况下, 根据每几个间隔的最新计算的方差和协方差Qk自适应配置。因为我们的测量传感器很简单,测量噪声方差被认为总是固定的,即3.2.4 方差和协方差的建模分配被认为与使用率成正比。因此我们可以通过使用方差估算它的过程噪声方差Q,然后使用以下公式(var记为方差): (19)使用过程噪声对应于使用信号在连续时间帧的演变。直接估算它的方差是困难的,因为使用信号本身是一个未知的信号,这并不对应可以用数学定律描述的任何物理过程。使用方差可以从CPU利用率的测量值计算得到。最后,测量噪声方差R对应于测量值非常接近真实值的信心。另外,很难
18、计算额外的CPU使用率。然而,考虑到存在相对精确的测量工具,一个小值(比如R = 1.0)作为一个好的近似的测量误差。像分配方差的计算, 基于使用协方差的组件的分配之间的协方差可以计算。如果是组件i和j之间的测量使用值,那么它们之间的分配协方差(cov记为协方差)可以计算如下: (20)当使用KBC或PNCC控制器时,平稳过程方差或协方差提前离线计算和在运行时保持不变。APNCC而言,他们是在线计算,每隔几个控制器间隔它们的值更新。不同的方法会在评估时进行比较。4、实验评估 在本节中,我们使用运行了一个在不同工作负载条件下的3层Rubis3基准测试程序的拍卖web服务器的原型虚拟集群来评估控制
19、器。4.1.1 原型虚拟化集群图1:虚拟原型和控制系统。控制器模块之间的实线,Rubis服务器系统描述了三个KBC SISO控制器。MIMO控制器在虚线矩形中显示。 图1演示了原型虚拟化集群由通过千兆以太网连接的三台机器组成,每个机器上运行Xen 3.0.2服务器管理程序4和托管Rubis服务器应用程序。Rubis是一个原型拍卖web服务器,建立了eB。每三个服务器组件-Tomcat web服务器,JBoss应用服务器和MySQL数据库服务器-被部署在不同的运行一个单独的虚拟机的物理机器上。第四个主机运行Rubis客户端模拟器,用于生成请求。在本文中,我们使用两个混合的工作负载:浏览混合(BR
20、)包含只读的请求和投标混合(BD),其中包括15%的读写请求。除非另外声明,我们主要使用BR。客户端模拟器也记录请求响应时间,用于评估控制器的性能。我们已经建立了两个模块来控制资源管理过程:管理模块和控制模块。周期性得,管理模块提交平均CPU使用。控制模块计算下一个间隔的分配和通过使用从Xen导出的CPU调度程序接口执行新分配给指定的vm。我们的原型使用“简单EDF”(SEDF)调度程序配置限制选项,没有虚拟机可以使用更多的已经被分配的CPU时间。控制模块和客户端模拟器运行在同一台机器上。本文对能控制CPU分配给虚拟服务器应用程序的卡尔曼滤波器的性能进行评估。为了确保服务器性能完全取决于控制器
21、的CPU分配,要采取某些操作。所有机器有两个CPU,每个物理机有2个固定一个单独的CPU的vm。这个简单的设置使我们能够研究控制器(s)分配对服务器性能的影响而不用担心调度时运行虚拟机之间由于共享相同的CPU造成的影响。最后,对于所有的实验,当第一次创建时每个VM分配要求的内存并且分配保持不变。网络带宽也会被测量,但从来不是一个瓶颈。4.2 预备知识 本节描述实验方法和设置这些参数的值(即控制器间隔,c,方差/协方差),保持这些值在几个实验中相同。评价主要使用了两个工作负载的实验:工作负载W0(t1,t2,t3):在这个实验中,300个客户在3个时间间隔发出请求。在t1 间隔,另外300客户添
22、加直到t2间隔。所有请求属于BR混合。这个实验模拟中等强度的工作负载因为有两个工作负载变化,客户的数量在剩下的实验中保持不变。 每个实验结果由两个图呈现(如图所示。稍后,图2)。第一个图表显示对应的平均Tomcat组件利用率和平均每个时间间隔的分配(记为图中的样本点)。由于篇幅限制,JBoss和MySQL的图表都省略了,但是它们都给出了类似的结果。第二个图展示了服务器性能: 对每个控制器的时间间隔(以秒为单位)的平均响应时间(以下表示为mRT)。mRT的值不是用来控制分配值的;而它们仅提供服务器性能的图形表示形式。每个控制器的能力评估:(a)遵循利用率(b)在工作负载变化下保持良好的服务器性能
23、。当服务器组件能充分供应任何工作负载类型时,服务器使请求mRT1秒。这是服务器期望达到的性能水平,使控制器动态配置资源和以后对控制器的性能进行评估。工作负载W1:在这个实验中60个时间间隔总共有200客户发出请求。在第30 个间隔,600个客户请求在未来30个间隔被添加。所有请求属于BR混合。这个实验模拟不可预知的大量的工作量的增加,用于评估当组件最有可能饱和时的控制器性能。控制器的性能检查期间只从30到50之间的变化,直到服务器将增加的工作负载处理完。我们使用三个评价指标,所有这些石在一段时间内的几个间隔内计算得到的。1. CR:已经完成的请求数2. NR:请求响应时间mRT=1s的请求数比



- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 外文 翻译 使用 卡尔 滤波器 虚拟 服务器 提供 自适应 配置 CPU 资源配置 资料
