论文部分内容阅读
随着虚拟化技术和多核NUMA架构发展和普及,基于虚拟化环境的多核NUMA架构商用服务器越来越受到广泛的重视以及使用。与此同时,业界对于虚拟化环境下的多核NUMA架构服务器的性能要求也越来越高。一方面,虚拟化环境下系统默认的调度器在NUMA架构下并不能获得很好的性能,另一方面,传统的NUMA架构因为虚拟化技术的引入变得更加复杂,现有的基于线程调度的优化算法也不能获得令人满意的性能提升。在这样的背景下,本文设计并实现了一个面向虚拟化环境多核NUMA架构的性能优化系统,该系统基于共享缓存感知和NUMA感知,通过实时监测虚拟机线程和NUMA硬件等性能信息,分析VCPU线程特征,对VCPU进行实时迁移调度,以实现系统的负载均衡,提高系统性能。本文所作的工作主要体现在以下几个方面:(1)对VCPU线程分类;本文中,根据LLC失配率对VCPU线程进行分类,并在线程更新过程中利用二重指数平滑算法类别的更新更加稳定可靠,相较于系统默认的调度器,这种对线程分类的方式更能考虑到VCPU线程的运行特征,更利于CNA系统做出更正确的调度决策。(2)提出VCPU线程到节点的绑定;在CNA_VCPU调度算法的设计中,笔者提出VCPU线程到节点的绑定。这么做一方面可以保证调度算法实现系统的负载均衡,另一方面也可以由系统自带调度器进行节点到CPU核的调度,不仅提高了调度算法的灵活性还提高了系统的调度效率。调度算法在做出调度决策时优先考虑将VCPU线程放置在当前节点上,可以降低系统VCPU线程调度的开销。(3)为每个线程引入了Home Node的概念;为每个线程引入了Home Node的概念,这样可以提高对LLC资源的共享,降低线程间对LLC竞争,提高系统性能。(4)本文设计和实施了详尽的测试方案。本文设计和实施了详尽的测试方案验证了CNA系统对虚拟机环境下多核NUMA系统有显著的性能提升。