论文部分内容阅读
实时应用是很常见的一类应用。与其他应用相比,实时应用最显著的特征是具有截止期限,任务应该在截止期限之前完成。根据实时性需求不同,实时应用可以分为硬实时应用和软实时应用。硬实时应用必须在截止期限之前完成任务,而软实时应用可以容忍少量错过截止期限的情况发生。随着虚拟化技术的发展,越来越多的软实时应用运行在云计算环境中。但是,虚拟机管理器的CPU调度器主要考虑如何让虚拟机公平共享CPU资源及提高系统吞吐率,忽视了实时应用具有截止期限这一特性,严重影响此类应用的性能。因此,如何有效地优化虚拟CPU调度是保证虚拟化环境下实时应用性能的关键。根据实时应用以及虚拟机管理器的特征,在虚拟化环境下优化虚拟 CPU调度来支持软实时应用主要面临以下三个关键问题:1)如何在虚拟化环境下支持实时应用的同时保证良好的性能隔离?2)如何在虚拟化环境下保证并行软实时应用的性能?3)如何在虚拟化环境下根据实时应用的需求动态地支持软实时应用? 首先,实时CPU调度器通常优先考虑实时应用,而忽略了对非实时应用的影响,打破了虚拟化平台保证的性能隔离。此外,不同类型的应用的特征不同,对CPU调度器的需求也不同,单一的CPU调度器无法满足不同应用的需求。为此,一种基于多调度器的实时CPU调度机制通过动态多核划分框架将物理CPU划分成两个子集,实现实时虚拟机和非实时虚拟机之间的性能隔离。一个子集使用虚拟化环境下全局最早截止期限优先调度器调度实时虚拟机,另一个子集使用Xen的Credit调度器调度非实时虚拟机。该框架解决了单一 CPU调度器无法满足不同应用需求以及实时CPU调度器会影响性能隔离的问题,而虚拟化环境下全局最早截止期限优先调度器可以充分利用多核处理器,解决了Xen的SEDF调度器的缺陷。 其次,多核处理器的流行促使软实时应用使用并行编程模型降低响应时间。这类并行软实时应用同时具有实时应用和并行应用的特征,在虚拟化环境下同时面临着软实时约束和同步问题。为了解决这些问题,一种虚拟化环境下并行软实时 CPU调度算法一方面根据实时应用的特征通过实时优先级和动态时间片来解决并行软实时应用的软实时约束;另一方面,通过并行调度和组调度来解决虚拟机内同步问题和虚拟机间同步问题。此外,针对跨物理机的虚拟机间同步问题,该算法使用通信驱动组调度机制予以解决。 最后,云计算数据中心中运行着各种各样的应用。CPU调度器需要根据应用的需求动态地支持具有不同特征的应用。但在云计算环境中动态地支持实时应用面临着以下三个挑战。首先,由于虚拟化引入的语义鸿沟的存在,虚拟机管理器难以确定虚拟机内运行的应用类型及调度参数;其次,CPU调度器在支持实时应用的同时应该减少对其他应用的影响;最后,Domain0在实时应用的I/O处理中扮演着重要的角色,如何调度Domain0成为一项挑战。为了解决这些挑战,一种通信感知的动态实时CPU调度机制通过分析应用发送的网络包来判断虚拟机类型并推测实时虚拟机的调度参数。虚拟机管理器的CPU调度器根据动态获取的调度参数周期性地调度实时虚拟CPU,并将实时虚拟CPU的调度推迟到截止期限到来时以减少对非实时应用的影响。Domain0特化机制会在系统中存在实时虚拟机时将Domain0特化为一个实时虚拟机并根据其他实时虚拟机的调度参数设置Domain0的调度参数。虚拟化环境下通信感知的动态实时CPU调度机制无需用户手动设置虚拟机的调度参数,且可以根据实时应用负载变化自动地调整调度参数。 综上所述,通过从不同角度对虚拟化环境下CPU调度进行研究,形成一整套面向实时应用的虚拟CPU调度策略,可以有效保证实时应用在虚拟化环境下的性能。