论文部分内容阅读
虚拟机I/O已成为虚拟化系统的性能瓶颈,虚拟机I/O性能优化可通过优化资源分配调度和完善体系结构这两个途径实现。 多核环境下虚拟CPU调度对于虚拟机I/O性能具有重要影响。Credit算法难以保证分配给虚拟机的时间为其所用,难以满足延迟敏感型虚拟机的性能需求,频繁的虚拟CPU迁移将抵消负载均衡所带来的好处。针对上述问题提出了一种适用于多核环境和支持单根输入输出虚拟化(Single-Root I/O Virtualization, SR-IOV)设备的FLMS(Fair I/O Latency and Multi-core Sensitive Scheduler)调度算法。FLMS采用信用值传递技术给虚拟 CPU分配信用值来保证虚拟机获得的CPU时间与其权重相匹配;FLMS还将虚拟机分成延迟敏感和非延迟敏感两种类型,然后依据两种类型虚拟机的负载计算两者应获得的物理CPU资源,最后将两者绑定至相应物理CPU,并给前者设置较短时间片来降低其I/O延迟;最后,FLMS在非统一内存访问架构中采用就近迁移的方法来降低单次迁移开销以及基于负载的目标虚拟CPU选取策略来降低迁移次数。 SR-IOV中I/O中断处理会导致虚拟机/虚拟机监控器(Virtual Machine Monitor, VMM)切换。针对该切换开销提出了一种利用多核技术的优化方法,在多核环境下, VMM可以预留CPU用于处理中断,并将虚拟机绑定至剩余CPU,使中断处理和虚拟机运行分离,从而消除CPU运行虚拟机过程中接收中断产生的虚拟机/VMM切换开销进而实现无虚拟机/VMM切换开销的中断处理。 实验表明,FLMS算法能够实现CPU时间的公平共享,有效提升虚拟CPU迁移效率进而提高虚拟机性能,相比于Credit算法,FLMS中可将虚拟机的I/O延迟降低60%以上。采用中断绑定和虚拟CPU绑定的中断处理方式能将虚拟机的I/O性能提高15%以上。