论文部分内容阅读
云计算为用户提供了一种计算资源按需分配和弹性利用的服务模式,有效降低了IT系统的运营维护成本。随着云计算技术的普及,越来越多的应用服务运行在云平台的虚拟机中,虚拟化系统极大地提高了应用服务的部署效率和对计算资源需求变化的响应速度。然而,云平台中虚拟机间因资源竞争导致的性能下降和性能波动问题,不仅影响了用户的服务体验,也影响了云平台系统的整体运行效率。因此,优化虚拟机的运行性能成为虚拟化技术研究的重要课题。 在虚拟化系统中,多台虚拟机共享底层的物理计算资源,虚拟机监控器负责虚拟机间物理资源(例如CPU核数、内存空间和磁盘大小等)的隔离。但是,传统的虚拟化系统无法对物理硬件中的CPU共享缓存、内存控制器、总线带宽等微架构资源进行有效的资源隔离。这导致了虚拟机对上述微架构资源的竞争使用,严重影响了虚拟机的运行性能。另一方面,目前的商用服务器普遍采用基于非一致性内存访问(Non-Uniform Memory Access,NUMA)架构的多核多处理器系统,多核NUMA系统进一步增加了虚拟化系统管理硬件资源的复杂性。虚拟机运行在多核NUMA系统中存在数据访问局部性问题、片上微架构资源竞争问题、节点间数据共享开销问题等,严重影响了虚拟化系统的运行效率和虚拟机运行性能的稳定性。 为了提高数据中心虚拟化系统的运行效率和保证虚拟机的服务质量,本文主要从虚拟化多核NUMA系统的性能特征分析、虚拟机NUMA感知的调度技术、以及虚拟机性能建模和数据中心虚拟机调度部署技术等方面进行深入研究。本文研究的主要内容和具体贡献描述如下: (1)深入分析了虚拟机在多核NUMA系统中运行时的性能开销因素。通过实验测试分析虚拟机VCPU和内存资源的不同调度映射组合下产生的性能影响情况,研究发现虚拟机在多核NUMA系统中高效的运行不仅取决于虚拟机自身的数据共享及内存访问特性,同时也受到邻居虚拟机资源使用行为特征的影响。 (2)设计实现了一种轻量级NUMA感知的用户态虚拟机调度器。通过在宿主操作系统的用户态实现轻量级的虚拟机调度器,极大地方便了虚拟机调度优化算法的实现以及快速地在实际生产系统中的部署应用。在轻量级的用户态虚拟机调度器中设计实现了一种基于最佳NUMA节点选择的BNN虚拟机调度算法,BNN算法综合考虑了多核NUMA系统中的远端内存访问延迟问题和CPU负载均衡问题。相比传统虚拟机VCPU调度器,使用本文提出的轻量级NUMA感知的用户态虚拟机调度器有效地提高了虚拟化系统的整体运行效率。 (3)提出了一种NUMA数据流量感知的虚拟机调度优化方案TAVO。针对多核NUMA系统中存在的多种性能开销因素相互影响的问题,本文采用硬件性能监控技术对虚拟机内存行为以及NUMA系统级别的数据流量在线实时监控,以获得虚拟机运行时的关键性能信息。基于在线性能监控信息,本文提出了数据流量感知的虚拟机初始放置混合装箱算法与在线虚拟机动态调度算法。TAVO方案主要由硬件性能监控器、虚拟机初始放置管理器和虚拟机调度器三个模块组成,模块之间协同工作,有效地优化了NUMA系统中的虚拟机性能开销问题。实验测试结果表明虚拟机性能优化方案TAVO相比传统的虚拟机部署方案获得了更好的整体运行效率并提高了单台虚拟机性能的稳定性。 (4)建立了一种共享资源竞争感知的虚拟机性能下降预测模型,并基于该模型提出了虚拟机共享资源竞争感知的集群调度系统。通过分析多核NUMA系统中虚拟机间共享微架构资源竞争使用产生的相互性能影响关系,提出了一种在线虚拟机运行特征采集方法,以获取虚拟机在不同共享资源竞争维度上的竞争敏感度和竞争强度信息。基于虚拟机的资源竞争特征信息,采用机器学习技术建立了虚拟机性能下降预测模型,并在性能预测模型的基础上,提出了虚拟机资源竞争感知的集群调度系统。实验测试结果表明虚拟机性能下降预测模型能够准确预测虚拟机的性能下降幅度,基于预测模型的调度系统可以有效地提高数据中心虚拟化系统的运行效率和保证虚拟机的服务质量。