1、外文原文:http:/ 11344 字 使用卡尔曼滤波器为虚拟服务器提供自适应和自配置的 CPU 资源配置 Evangelia Kalyvianaki Themistoklis Charalambous Steven Hand 出处: In proceeding of: Proceedings of the 6th International Conference on Autonomic Computing, ICAC 2009, June 15-19, 2009, Barcelona, Spain 摘要 :数据中
2、心虚拟化可以使用节约成本的服务器整合, 服务器整合不仅能增加系统的吞吐量还能减少电力消耗。虚拟服务器的资源管理是一个重要和富有挑战的任务,特别是当负载变化很大,以及要处理复杂的多层服务器应用时。最近的将控制理论应用到资源管理显示了很好的效果。可以将控制理论应用到动态资源分配以匹配变化的负载。 本文提出了一种新的资源管理方案,将卡尔曼滤波器应用到反馈控制器,来动态地将 CPU 资源分配给运行着服务器应用程序的虚拟机。这个方法的创新点在于卡尔曼滤波器的使用 最优的状态滤波技术 通过追踪 CPU 的使用,来相应的更新资源的分配。我们的控制器通过持续的检测来 自适应的预测工作负载强度的变化
3、。 我们的控制器不需要任何先验知识 。 在 高强度的工作负载变化下,负载感知的控制器的性能恶化控制在 4.8%以下,在中等强度下也表现得很好。另外, 我们 的控制器在处理多层的服务器应用时性能提高:通过使用在应用程序组件间的成对的资源配对,当出现大量意料外的工作负载的增加时平均服务器性能与没有使用这种方法比时提高 3%。我们通过控制一个部署在 Xen 虚拟化集群的 3 层Rubis 基准程序来评估我们的技术。 分类和主题描述 C.4(系统性能 ):测量技术 ,建模技术。 一般术语:管理、 测量 和性能。 1、 引言 &n
4、bsp; 由于硬件设施的虚拟化,数据中心的格局正在改变。一台物理服务器可以转成一台或多台虚拟机,这多台虚拟机共享提供的硬件资源,应用程序在这些相互隔离的虚拟机环境中运行。每台虚拟机都有生命周期管理,包括创建,删除,暂停,在物理服务器间迁移和运行时资源分配等管理操作。这些特征允许在应用程序和物理服务器之间资源任意组合,允许提供有效的服务器整合。然而,负载需求经常会随着时间变化,而使得其难以估计。 变化的工作负载会引起种类多样的变化的对于系统组件的资源需求。对于创造一个高性能的服务器整合环境,遵循变化的负载 的动态资源分配显得十分重要。事实上,如果每个应用程序能被合理的提供
5、资源,那么额外的资源可以被使用,比如去运行其他的应用程序,或者提高现有系统的吞吐量。 在本文中 ,我们提出一个创新的控制分配方法 ,集成卡尔曼滤波技术 7到一组反馈控制器来动态地为多层虚拟化应用程序提供 CPU 资源。在仿真环境中卡尔曼滤波器之前已经使用来估计排队模型的参数 17,但是 ,据我们所知 ,这是第一次直接使用卡尔曼滤波器跟踪虚拟服务器的 CPU 利用率 ,来引导它们的资源分配。 我们将分配问题公式化为 CPU 利用率追踪问题 ,控制器旨在追踪和维持 CPU资源分配 高于 CPU 实际的 利用 一段范围 。这是一个直观的方法 ,资源配置时为每个虚拟机分配其需要
6、的资源 。 将 CPU 配置保持在一个可参考的 输入已被 商业产品 (例如惠普 工作负载管理器 ) 和其他研究原型 15、 11采纳 。然而我们的控制器独有的非常强大的将过滤技术整合到线性反馈控制器。 本文如下部分组织如下。第二节进一步得激励资源配置和我们的方法和卡尔曼滤波器的使用。第三节介绍应用程序性能模型和控制器。第四节描述 Rubis 基准测试程序和我们的评估平台, 并且 呈现我们的实验结果。第五节介绍相关工作。最后第六节总结和展望未来 。 2、 研究 目的 资源配置虚拟化技术应用广泛属于两个主要类别 :(a)没有约束的; (b)基于约束的
7、 。在没有约束的供应时 , 每个应用程序能够最大化使用托管服务器的物理能力。这种方法是管理简单 ,因此易于实现。 然而 ,它并不提供任何应用程序的性能保证 ,尤其是在争资源的条件下时 11。 任何应用程序都可以控制资源使其余程序处于饥饿状态。此外 ,由于驻留的应用程序的 CPU 使用率的不断变化 ,很难估计每台物理机可用的免费资源 ,从而使任何方面的整合规划应用程序性能难以落实。 在基于约束的资源配置中 ,每个应用程序限制使用物理资源 的一个子集 ,流行的 方法 包括基于限制的和自适应阈值上限的配置的方法 。 例如 ,VMware DRS 资源管理工具 1将 CPU 资源利用率限制
8、在用户配置的上下限间。 这种方法的优点是双重的。首先 , 由于使用下限保证最低的应用程序的性能。其次 ,由于所有共存的虚拟机不能超过总资源利用上限 ,可以估计运行额外的应用程序需要的免费可用资源。虽然基于限制的 整合配置是对于保证性能的 一种简单而有效的机制 ,当应用程序 运行 不同 的 经常改变 的 工作负载 它可能失效 。 性能违规行为发生在应用程序需要比上限更多的资源 ,而当应用程序需要甚至低于它的下限时 资源被浪费。 基于自适应上限阈值的资源配置解决这些缺点。在这种情况下 ,一个 VM 不断更新可以使用的最大资源。为了总是满足应用程序的性能,为每个应用程序动态分配适应工作负
9、载需求。这种机制允许其他应用程序基于可用的免费资源进行合并。也曾出现过一些系统 , 通过控制理论使用这种基本方法 (例如 11)。 在本文中 ,我们提出一个新的基于理论的 vm 资源配置管理系统 ,使用一个简单的性能模型和卡尔曼滤波来跟踪有噪声的资源利用率和更新资源配置。 我们的方法的创新点在于将过滤技术整合到反馈控制器。我们选择卡尔曼滤波器因为它是最优 线性滤波技术,在一定条件下 , 即使条件松弛仍具有良好的性能。 使用过滤方法使我们的控制器在不同的工作负载下操作顺利。我们也加深了我们的工作, 通过 使用资源组件配对的耦合多层应用程序能更快调整工作负载的变化。最后 ,
10、也是最重要的是 , 在没有任何先验信息下,我们提供一个零设定机制来检测并适应工作负载条件。 3、 系统 本文介绍了 3 种基于卡尔曼的反馈控制器: 1、 单输入单输出 (SISO)卡尔曼基本控制器 ,以后记为 KBC。这个控制器动态分配 CPU 资源给各个可以独立运行服务器应用程序 ,或者是多层应用程序的一部分的虚拟机。 2、 多输入 多输出 (MIMO)过程噪声协方差控制器 ,记为 PNCC。该控制器调整多层应用程序的所有虚拟机的分配 ,利用两两之间的协方差的 VM 资源利用率来捕获组件之间的相关性。 与 KBC 控制器
11、相比, PNCC 的目的是给多层应用程序迅速分配资源。 3、 自适应 MIMO PNCC 或者 APNNC。 APNCC 像 PNCC ,对一个 应用程序的 所有 虚拟机 分别 分配 CPU 资源。 然而, 它 可以自适应调整 参数和 自配置来适应 不同负载条件。 每个控制器分配 CPU 资源给虚拟机完全基于资源利用观测和应用程序的性能模型。每个 VM 被视为一个 可以运行应用程序的一层或一个 完整的应用程序的 黑盒。 术语层、组件和 VM 在文中交替使用。本节的其余部分介绍了应用程序的性能模型和控制器的设计。 3 1 应用程序的性能模型 &nb
12、sp;控制器使用一个简单的和直观的 使用卡尔曼滤波增强的 应用程序性能模型来 跟踪 vm 的 CPU 资源利用率。 控制器将 CPU 资源分配给虚拟机时只需要基于资源使用的观测值以及应用程序性能模型。我们的性能模型使用已知的观测值。当服务器应用程序到达它的服务饱和点,它的性能,比如请求响应时间,会迅速恶化。为了维持好的性能,服务器应用程序需要被分配比当前的使用值更多的资源。然而,由于变化的工作负载,将资源分配值维持在高于需求的状态往往造成在使用值上的大的偏差。将时变的 CPU 使用率作为一个一维随机游动的值,建立以下的线性随机差分方程: 1k k kv v t , (1) 其中 kv 表示在 k 时刻真实使用的占总的 CPU 的比重,独立的随机变量 kt 表示过程噪声, 并 假定它正态分布。直观来看, 在一个 服务器系统,在时刻 k+1 的CPU 使用率通常会依赖于 k 时刻的 CPU 使用情况, 并 在此基础上加上一定的噪声以引起变化。如果 kv 已知,为了获得一个好的应用性能, 控制器 需要将资源分