论文部分内容阅读
近年来,云计算作为一种基于互联网的新型计算方式得到广泛关注。Google、Microsoft、Amazon、阿里巴巴等公司均搭建了自己的云计算平台以提供公共的云计算服务。与此同时,虚拟化技术得到了快速的发展。通过将计算机的各实体资源予以抽象,虚拟化技术使用户可以更方便的应用这些资源。虚拟化技术是搭建云计算平台的基础,对计算资源的虚拟化是搭建云计算平台的核心。Hypervisor是实现计算资源虚拟化的主要方式,其具体实现包括Xen、KVM、Hyper-V、ESX-i等。其中Xen是主流的开源虚拟化平台,被国内外云计算服务提供商广泛使用。 然而,受限于虚拟化技术当前的发展水平,使用虚拟化技术创建的虚拟机并不能提供等同于传统物理机的特性。虚拟化技术对虚拟机系统各方面性能均产生了影响。特别地,虚拟机的网络性能会因受到虚拟化技术vCPU调度机制的影响而显著降低。具体表现在,使虚拟机网络吞吐量降低、延迟增大、抖动增强。甚至当宿主机网络负载较轻时,虚拟机网络性能也会受到影响。当宿主机CPU负载较高时,影响尤为强烈。 本文对Xen虚拟化技术进行了深入研究,通过分析vCPU调度对虚拟机网络性能的影响方式,提出了面向虚拟机网络优化的vCPU调度机制。本文的主要贡献包括: 1.通过实验与分析,发现Xen vCPU调度通过影响虚拟机虚拟网络设备前、后端驱动之间正常的数据交互导致虚拟机网络性能降低。具体原因:排队等待调度导致vCPU交替处于运行状态与非运行状态,从而使得虚拟机无法及时从后端驱动接收数据及向后端驱动发送数据,并可进一步造成由共享I/O环溢出导致的丢包及由vCPU排队延迟触发的拥塞控制等问题,最终导致虚拟机网络性能降低。 2.提出了面向虚拟机网络优化的vCPU调度机制。该vCPU调度机制包括虚拟机排队敏感型信息的获取方法和基于虚拟机排队敏感型信息的vCPU区分调度方法。虚拟机排队敏感型信息的获取方法通过对Xen虚拟网络设备后端驱动内共享I/O环特征信息的周期性监测,实现了对排队敏感型虚拟机的动态识别。基于虚拟机排队敏感型信息的vCPU区分调度方法把宿主机物理CPU资源进行动态分池管理,并将排队敏感型虚拟机的vCPU调度到网络优化的CPU池内进行运行,实现了对排队敏感型虚拟机vCPU的网络优化区分调度。通过实验验证了使用该vCPU调度机制后,Xen可实现对排队敏感型虚拟机的动态识别,并有效提高排队敏感型虚拟机的网络性能。