论文部分内容阅读
虚拟化技术的引入让单个计算机可以同时运行多个操作系统。在虚拟化环境中,虚拟机监控器(Virtual Machine Monitor,简称VMM)接管了传统操作系统的绝大部分功能或者作为主机操作系统(Host OS)的一部分,运行在最高特权级。VMM能够创建多个隔离的容器,即虚拟机(Virtual Machine,简称VM),而多个并发运行的操作系统被称为客户操作系统(Guest OS)。计算效能是衡量计算机系统优劣的一个重要指标,包括成本、性能、可编程性、可移植性、健壮性等多个方面。虚拟化技术尚不十分成熟,虚拟化环境的计算效能与传统环境相比存在较大的差距,主要体现在电能消耗与系统性能两个方面。因此,本研究的重点是如何在虚拟化环境中通过节省电能与改善性能来实现计算效能的改进优化。具体研究内容包括虚拟机主导的电源管理、虚拟机的精确时间记账、上下文切换频率动态调节和亲缘关系感知的公平调度策略,分别概括如下:在降低成本方面,电源管理是提升计算效能的主要方法。因为成本主要来源于计算过程随时间的增长而增长的持续性投入,而电能消耗是其主要组成部分。虚拟化最早应用于服务器领域,而在客户端的应用也越来越普遍。客户端虚拟环境中,各个虚拟机的地位不完全对等,而是有一个与用户交互并占有绝大部分运行时间的主虚拟机。基于此,提出了一种虚拟机主导的电源管理方法。该方法将原本被虚拟机监控器所屏蔽的底层电源特征展露给主虚拟机,藉此充分利用操作系统成熟的电源管理技术,而VMM里面只需要少量的协调控制逻辑。实验结果显示虚拟机主导的电源管理方法比以VMM为中心的电源管理方法节能8-22%。在改善性能方面,处理器调度是优化计算效能的关键。为了协调VMM与GuestOS的两层调度,本研究提出了精确时间记账方法:XenHVMAcct。CPU时间记账是性能评测和进程调度的数据来源,其精确度直接影响评测的可靠性和调度的公平性。CPU时间在传统环境中为一个操作系统独享,而在虚拟环境中是被多个客户操作系统分时共享。因此传统的记账方法在虚拟化环境中并不适用。XenHVMAcct在VMM里面增加了一种用于记账的SCHED_IN虚拟中断,同时在Guest OS中增加了处理该中断的内核模块,大大提高了硬件辅助虚拟机中时间记账的精确度。上下文切换频率动态调节是一种处理器调度策略的优化,其主要目的是改善过分配虚拟机的性能。过分配表示虚拟CPU(即VCPU)的个数大于物理CPU(即PCPU),是虚拟化中的一种常见现象。在广泛应用的Xen虚拟化系统中,若使用缺省的Credit调度器,当通信密集型和I/O密集型的并行应用程序运行在过分配虚拟机上时,性能会急剧下降。改进的调度策通过记录总线访问事件等信息来监控VCPU的行为,同时基于这些行为特征,动态调整上下文切换的频度以优化应用程序的性能。实验显示该策略对各种类型的应用程序都能获得与非过分配情况下十分接近的性能。亲缘关系感知的公平调度策略简称Credit-APS策略,它改善了处理器调度在有亲缘关系约束时候的公平性。CPU亲缘关系将VCPU限制在一部分PCPU上运行,通过减少VCPU迁移获得强性能隔离之类的特性。Credit调度器在自由映射(无亲缘关系约束)时能够实现比例分享(即公平性),但在受限映射(有亲缘关系约束)情况下则不然。Credit-APS策略基于Credit算法改进,将“权重”扩展定义成“相对于调度对象可用资源总量的资源分配系数”,同时在进行时间片分配时考虑了亲缘关系的因素。该策略在各种情况下均可实现比例分享。虚拟机主导的电源管理和精确时间记账为虚拟化环境提供了两种基础机制,而上下文切换频率动态调节和亲缘关系感知调度针对不同的应用场景提出了改进和优化的处理器调度策略。这些措施有效地提高了虚拟化环境中的计算效能。