面向多核处理器的虚拟机性能优化

来源 :复旦大学 | 被引量 : 0次 | 上传用户:lumuming
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
互联网技术的发展逐渐给人们带来了新的计算方式,云计算即是互联网发展的产物之一。云计算通过将众多计算资源整合抽象成虚拟计算环境的方式,向用户提供虚拟的计算资源,具有分配迅速、管理灵活和可回收再利用的优点。同时云计算服务还因为计算资源的高密度整合,最大化了硬件的使用率,避免了利用率低下带来的能源消耗。虚拟化技术作为云计算的核心技术之一,为计算资源的整合与调度提供了可能,该技术使单台物理服务器上能够同时运行多台虚拟机实例。虚拟机管理工具是系统虚拟化的重要组成部分,虚拟化管理工具使得虚拟机能够被保存、恢复和在多台物理服务器间迁移。多核处理器的发展,显著提高了硬件的并行计算能力。但是,现有的虚拟机管理工具往往采用单线程的实现方式,此方式没有有效利用硬件的并行计算能力。同时由于存储空间和内存容量的不断增加,云服务提供的虚拟机实例也在逐渐变大。此趋势导致虚拟机管理过程耗时更长——需花费更多的时间处理虚拟机实例的大内存和硬盘存储。所以,虚拟机管理工具能否充分利用硬件资源的并行处理能力,决定了在多核处理器条件下虚拟化技术能否为云计算提供高效的虚拟机管理方案。多核处理器引入带来的内存带宽问题使得NUMA访存模型被广泛运用于大型服务器中。虚拟化技术为云计算提供计算资源抽象的同时,也为虚拟机与真实硬件带来了隔离,使虚拟机无法了解真实的硬件配置,如NUMA拓扑结构等。这将显著提高虚拟机内资源分配和任务调度的难度,降低虚拟机的运行效率。针对上述问题,本文开展了以下两方面的工作:1.提出了虚拟机管理工具并行化方法,该方法将虚拟机管理工具中的保存和恢复工具按步骤进行分解,通过流水线的方式进行并行处理,并且将其中耗时的步骤分配个多个线程并行执行。2.提出了动态NUMA方法,该方法将NUMA拓扑结构通过虚拟固件告知虚拟机。通过动态修改虚拟机内操作系统NUMA拓扑结构,配合虚拟机监控器的任务调度算法,动态NUMA方法使得虚拟机监控器在调度虚拟CPU的同时,仍然保持虚拟机内NUMA拓扑结构准确性,提高了虚拟机在NUMA访存模型中的执行效率和调度灵活性。为了验证虚拟化管理工具并行方法和动态NUMA方法的确提高了虚拟机的管理和执行性能,我们在Xen虚拟化平台上实现了并行化的虚拟机管理工具以及动态NUMA方法,并对这些方法进行了对比实验。实验结果表明:1.虚拟化管理工具的并行方法充分利用了多核处理器的计算能力,显著提高了虚拟机管理工具的执行效率,运行时间缩短到原有的33%。2.动态NUMA方法提高了虚拟机在具有NUMA访存模型的服务器上执行性能,在mmap试验中运行效率提高近100%。
其他文献
本文主要研究了在构建网络管理系统的标准TMN(Telecommunication Management Network,电信管理网)的框架下,网络故障管理的基本需求和功能集,以及分布式的故障管理系统的架构、
本文以燃气表的远程维修为研究背景,提出了基于GPRS网络的嵌入式解决方案,论述了基于GPRS网络的嵌入式手持终端的设计与实现及对相关技术的研究。文章以嵌入式手持终端的设计为
近年来,网购平台(如亚马逊,淘宝等)蓬勃发展,大量互联网用户选择在线网购作为重要的购物方式。网购平台为提升用户购物体验,将图像作为商品展示中不可缺少的一部分。这同时也
本论文研究基于角色的访问控制技术及其在数字图书馆门户网站系统中的应用。论文首先介绍了自主访问控制(DAC)模型、强制访问控制(MAC)模型和基于角色的访问控制(RBAC)模
随着NGN(下一代网络)的发展和成熟,增值业务的提供能力已经成为当今众运营商竞争和发展的重点。本文分析了下一代网络的当前现状,并对其相关概念、核心协议SIP(会话初始化协
由Sun微系统公司于二十世纪八十年代开发的网络文件系统(NFS)是应用非常广泛的文件系统,它的实现基于Sun公司提出的远程文件访问技术,它的访问控制基于对用户的简单认证。随着
本文对嵌入式网络管理系统进行了需求分析,完成了硬件系统和软件系统的设计和基于RABBIT系统的实现。系统实现时重点实现嵌入式Web服务器,在嵌入式Web服务器实现时进行了TCP/
随着高分辨率电视(HDTV),智能手机和云计算的发展,极大地影响了我们的日常生活。近年来数据流量需求呈指数增长,促使模拟到数字蜂窝通信的转型,第四代和第五代移动通信的兴起,使得用
第三方物流企业在中国发展迅猛,并且随着知识经济的发展,逐渐的实现了企业信息化.湖北省交通物流信息平台的开发以及实际应用就是对物流企业发展提供了一个良好的信息平台,包
现代的集成开发环境(IDE)为程序员提供了丰富的软件开发工具支持,包括代码编辑、代码浏览与理解、开发任务管理、版本管理、调试与测试等。程序员使用IDE完成软件开发任务的