论文部分内容阅读
虚拟化技术是云计算环境中底层资源管理的关键支撑技术,它将底层硬件资源进行统一抽象管理,用户应用封装在上层虚拟机之内,多虚拟机可以共同运行在同一硬件环境中,极大地提高了硬件资源利用率;同时虚拟机快速启动、关闭以及在线迁移等操作也方便了系统管理。然而,多虚拟机共享底层资源也引入了许多新的问题,如虚拟机性能干扰,使虚拟机运行性能具有不确定性,而出于安全性和可移植性的考虑,底层维护人员需要避免侵入式监控上层虚拟机,同时底层硬件环境也日趋复杂,使虚拟化资源管理面临严峻的技术挑战。 虚拟化环境下,虚拟机按照一定的资源配额(vCPU数量、内存大小等)运行在底层VMM(Virtual Machine Manager)之上,虚拟机在使用这些硬件资源时并没有限制其他虚拟机的使用,如某虚拟机在Cache中缓存的数据有可能在其他虚拟机调用阶段被替换出去,该换入换出可能引入额外得性能开销,因此造成该虚拟机相比单独运行时性能有所下降。虚拟机性能干扰是由其他虚拟机的影响而造成的性能下降的现象。本论文通过监控底层硬件计数器信息估算虚拟机性能干扰,优化虚拟机调度,重点解决了虚拟机性能干扰估算、NUMA架构下虚拟机优化调度等问题,建立虚拟化资源监控管理框架vGuard,并进行原型系统的设计与实现。本论文的主要贡献如下: 虚拟机性能干扰估算:本文提出了一种基于硬件计数器的虚拟机性能干扰估算方法。硬件计数器是程序运行期间产生的硬件事件信息(如CPU时间片,缓存失效次数等),已有工作主要利用大规模分布式系统任务相似性查找产生异常硬件计数器数据的节点,而没有探究硬件事件变化与性能干扰之间的直接关系,本文通过实验研究发现硬件计数器(LLC misses rates)与不同资源需求的应用性能干扰存在不同的关联关系,并以此建立虚拟机性能干扰估算模型,估算虚拟机性能。实验结果表明,该方法可以有效的预测CPU密集型应用和网络密集型应用的性能干扰大小,并仅带来不高于10%的性能开销。 面向NUMA架构的虚拟机优化调度策略研究:随着硬件架构从多核向众核不断扩展,内存带宽逐渐成为多核系统性能扩展的瓶颈,由此硬件厂商提出了分节点共享存储资源的NUMA架构,同节点内核共享缓存和内存等存储资源,不同节点通过高速通道访问异节点数据,具有一定的性能开销。已有NUMA架构的调度策略主要以就近调度为主,保障数据本地性从而提高应用性能,然而在虚拟化环境下,对上层应用不可知的就近调度策略会导致资源倾斜,进一步加重虚拟机性能干扰。本文提出了一种面向NUMA架构的开销感知的虚拟机优化调度策略,该策略可有效监测上层应用运行状况,根据当前环境下不同节点运行情况,权衡同节点和异节点开销大小,优化调度结果。本文基于多项测试基准验证了方法可以有效提高虚拟机调度性能(3%~30%)。 结合以上研究成果,本文设计并实现了一个虚拟化资源监控管理系统vGuard,能够实时监控虚拟机运行状态,根据上层虚拟机性能变化动态调整资源,优化资源分配。